Postgres Group_Concat

Postgres Group Concat



În MySQL, funcția GROUP_CONCAT este o funcție agregată care concatenează valorile din mai multe rânduri într-un singur șir. Este folosit în mod obișnuit pentru a restrânge mai multe rânduri într-un singur rând, combinând datele aferente.

Cu toate acestea, PostgreSQL nu acceptă în mod nativ funcția group_concat() spre deosebire de MySQL. Prin urmare, acest tutorial explorează modul în care putem obține o funcționalitate similară folosind funcția string_agg().

Funcția PostgreSQL String_Agg

Funcția string_agg din PostgreSQL ne permite să concatenăm valorile din mai multe rânduri într-un singur șir și este separată de parametrul specificat.







Utilizarea sintaxei funcției este demonstrată după cum urmează:



SELECT string_agg(nume_coloană, delimitator)
FROM table_name
UNDE condiții
GROUP BY grupare_coloane;

Următoarea sintaxă este exprimată după cum urmează:



nume_coloană – Specifică numele coloanei a cărei coloană dorim să o concatenăm.





delimitator – Definește caracterul separator care este utilizat la unirea valorilor de intrare.

nume_tabel – Tabelul țintă care conține datele.



grupare_coloane – Specifică coloanele care sunt utilizate pentru gruparea datelor specificate.

Exemplu de funcție PostgreSQL String_Agg

Să luăm un exemplu mai practic pentru a ilustra modul în care funcționează funcția. Să presupunem că avem un tabel care conține informațiile despre elev. Tabelul conține trei coloane: id, nume și subiect.

Dacă dorim să concatenăm numele studenților care s-au înscris la aceeași materie, putem folosi funcția string_agg.

SELECT subiect, string_agg ( Nume, ',' ) AS studenți
DE LA elevi
GROUP BY subiect;

Odată ce rulăm interogarea dată, ar trebui să returneze un set de rezultate cu două coloane principale: subiectul și studenții. Elevii conțin numele concatenate ale elevilor pentru fiecare materie și sunt despărțiți prin virgulă.

NOTĂ : Funcția string_agg sortează implicit valorile concatenate. Puteți adăuga o clauză ORDER BY în cadrul funcției string_agg pentru a menține ordinea inițială.

Iată-l! O metodă simplă și eficientă de a obține o funcționalitate similară oferită de funcția group_concat() în PostgreSQL.

Concluzie

În acest tutorial scurt, dar eficient, am învățat cum să folosim funcția string_agg în PostgreSQL pentru a obține o funcționalitate similară oferită de funcția group_concat() din MySQL.