PostgreSQL

Cum se utilizează funcția PostgreSQL ARRAY_AGG?

Cum se utilizează funcția PostgreSQL ARRAY_AGG?
Metoda agregată ARRAY_AGG () este una dintre metodele utilizate în PostgreSQL, care ia mai multe valori de intrare și le concatenează într-o matrice, inclusiv valori NULL. Returnează o matrice cu fiecare valoare din grupul de intrare ca parte. Pentru a sorta setul de rezultate prin funcția PostgreSQL ARRAY_AGG, veți utiliza fraza ORDER BY. De asemenea, puteți utiliza clauza WHERE atunci când este necesar.

Pentru a înțelege metoda agregată ARRAY_Agg (), trebuie să efectuați mai multe exemple. În acest scop, deschideți shell-ul de linie de comandă PostgreSQL. Dacă doriți să porniți celălalt server, faceți acest lucru furnizând numele acestuia. În caz contrar, lăsați spațiul gol și apăsați butonul Enter pentru a sări pe baza de date. Dacă doriți să utilizați baza de date implicită, e.g., Postgres, apoi lăsați-l așa cum este și apăsați Enter; în caz contrar, scrieți numele unei baze de date, e.g., „Test”, așa cum se arată în imaginea de mai jos. Dacă doriți să utilizați un alt port, scrieți-l, altfel lăsați-l așa cum este și atingeți Enter pentru a continua. Vă va cere să adăugați numele de utilizator dacă doriți să treceți la un alt nume de utilizator. Adăugați numele de utilizator dacă doriți, în caz contrar, apăsați „Enter”. În cele din urmă, trebuie să furnizați parola de utilizator curentă, pentru a începe să utilizați linia de comandă folosind acel anumit utilizator, după cum urmează. După introducerea cu succes a tuturor informațiilor solicitate, sunteți bine să mergeți.

Utilizarea ARRAY_AGG pe o singură coloană:

Luați în considerare tabelul „persoană” din baza de date „test” având trei coloane; „Id”, „nume” și „vârstă”. Coloana „id” conține ID-urile tuturor persoanelor. În timp ce câmpul „nume” conține numele persoanelor și coloana „îmbătrânește” vârstele tuturor persoanelor.

>> SELECT * DE la persoana;

În funcție de tabelul general, trebuie să aplicăm metoda ARRAY_AGG agregată pentru a returna lista matricei tuturor numelor tabelului prin coloana „nume”. Cu aceasta, trebuie să utilizați funcția ARRAY_AGG () în interogarea SELECT pentru a prelua rezultatul sub forma unui tablou. Încercați interogarea indicată în shell-ul comenzii dvs. și obțineți rezultatul. După cum puteți vedea, avem coloana de ieșire de mai jos „array_agg” cu nume listate într-o matrice pentru aceeași interogare.

>> SELECTEAZĂ ARRAY_AGG (nume) DE la persoană;

Utilizarea ARRAY_AGG pe mai multe coloane cu clauză ORDER BY:

Exemplul 01:

Aplicând funcția ARRAY_AGG pe mai multe coloane în timp ce utilizați clauza ORDER BY, luați în considerare același tabel „persoană” din „testul” bazei de date având trei coloane; „Id”, „nume” și „vârstă”. În acest exemplu, vom folosi clauza GROUP BY.

>> SELECT * DE la persoana;

Am concatenat rezultatul interogării SELECT într-o listă de matrice în timp ce foloseam cele două coloane „nume” și „vârstă”. În acest exemplu, am folosit spațiul ca un caracter special care a fost folosit până acum pentru concatenarea ambelor coloane. Pe de altă parte, am preluat coloana „id” separat. Rezultatul matricei concatenate va fi afișat într-o coloană „persondata” în timpul rulării. Setul de rezultate va fi mai întâi grupat după „id-ul” persoanei și sortat în ordine crescătoare a câmpului „id”. Să încercăm comanda de mai jos în shell și să vedem singuri rezultatele. Puteți vedea că avem o matrice separată pentru fiecare valoare concatenată de vârstă a numelui din imaginea de mai jos.

>> SELECT ID, ARRAY_AGG (nume || "|| vârstă) ca persondata DE la persoana GRUPĂ PER ID ORDINĂ DE ID;



Exemplul 02:

Luați în considerare un tabel nou creat „Angajat” în cadrul „testului” bazei de date care are cinci coloane; „Id”, „nume”, „salariu”, „vârstă” și „e-mail”. Tabelul stochează toate datele despre cei 5 angajați care lucrează într-o companie. În acest exemplu, vom folosi caracterul special '-' pentru a concatena două câmpuri în loc să folosim spațiu în timp ce utilizăm clauzele GROUP BY și ORDER BY.

>> SELECTA * DE LA Angajat;

Concatenăm datele a două coloane, „nume” și „e-mail” într-o matrice în timp ce folosim „-” între ele. La fel ca înainte, extragem în mod distinct coloana „id”. Rezultatele coloanei concatenate vor fi afișate ca „emp” în timpul rulării. Setul de rezultate va fi mai întâi asamblat de „id-ul” persoanei și, ulterior, va fi organizat în ordine crescătoare a coloanei „id”. Să încercăm o comandă foarte similară în shell cu modificări minore și să vedem consecințele. Din rezultatul de mai jos, ați achiziționat o matrice distinctă pentru fiecare valoare concatenată de nume-e-mail prezentată în imagine, în timp ce semnul „-” este utilizat în fiecare valoare.

>> SELECT ID, ARRAY_AGG (nume || '-' || e-mail) AS emp DIN GRUPUL angajaților după ID ORDINĂ DE ID;

Utilizarea ARRAY_AGG pe mai multe coloane fără clauza ORDER BY:

De asemenea, puteți încerca metoda ARRAY_AGG pe orice tabel fără a utiliza clauza ORDER BY și GROUP BY. Să presupunem un „actor” de tabel nou creat în vechiul „test” al bazei de date care are trei coloane; „Id”, „fname” și „lname”. Tabelul conține date despre prenumele și prenumele actorului, împreună cu id-urile acestora.

>> SELECT * DIN actor;

Deci, concatenează cele două coloane „fname” și „lname” într-o listă de matrice în timp ce folosești spațiu între ele, la fel ca în ultimele două exemple. Nu am eliminat în mod distinct coloana „id” și am folosit funcția ARRAY_AGG în interogarea SELECT. Coloana rezultată concatenată va fi prezentată ca „actori”. Încercați interogarea menționată mai jos în shell-ul comenzii și aruncați o privire asupra matricei rezultate. Am preluat o singură matrice cu valoare concatenată nume-e-mail prezentată, separată printr-o virgulă de rezultat.

Concluzie:

În cele din urmă, aproape ați terminat de executat majoritatea exemplelor necesare pentru înțelegerea metodei agregate ARRAY_AGG. Încercați mai multe dintre ele la sfârșitul dvs. pentru o mai bună înțelegere și cunoaștere.

Cum se utilizează AutoKey pentru automatizarea jocurilor Linux
AutoKey este un utilitar de automatizare desktop pentru Linux și X11, programat în Python 3, GTK și Qt. Folosind funcțiile sale de scriptare și MACRO,...
Cum se arată FPS Counter în jocurile Linux
Jocurile cu Linux au primit un impuls major când Valve a anunțat suportul Linux pentru clientul Steam și jocurile acestora în 2012. De atunci, multe j...
How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...