Postgres Group_Concat

Postgres Group Concat



„MySQL“ funkcija GROUP_CONCAT yra agregacinė funkcija, sujungianti reikšmes iš kelių eilučių į vieną eilutę. Jis dažniausiai naudojamas sutraukti kelias eilutes į vieną eilutę, sujungiant susijusius duomenis.

Tačiau PostgreSQL iš esmės nepalaiko grupės_concat() funkcijos, skirtingai nei MySQL. Todėl šioje pamokoje nagrinėjama, kaip galime pasiekti panašią funkciją naudodami string_agg() funkciją.

PostgreSQL String_Agg funkcija

PostgreSQL funkcija string_agg leidžia sujungti reikšmes iš kelių eilučių į vieną eilutę ir yra atskirta nurodytu parametru.







Funkcijų sintaksės naudojimas parodytas taip:



SELECT string_agg(stulpelio_pavadinimas, skyriklis)
FROM lentelės_pavadinimas
KUR sąlygos
GROUP BY grupavimo_stulpeliai;

Ši sintaksė išreiškiama taip:



stulpelio_pavadinimas – Nurodomas stulpelio, kurio stulpelį norime sujungti, pavadinimas.





skyriklis – Jis apibrėžia skyriklio simbolį, kuris naudojamas sujungiant įvesties reikšmes.

lentelės_pavadinimas – Tikslinė lentelė, kurioje yra duomenys.



grupavimas_stulpeliai – Nurodomi stulpeliai, naudojami nurodytiems duomenims grupuoti.

PostgreSQL String_Agg funkcijos pavyzdys

Paimkime praktiškesnį pavyzdį, kad parodytume, kaip veikia funkcija. Tarkime, kad turime lentelę, kurioje yra mokinio informacija. Lentelėje yra trys stulpeliai: ID, pavadinimas ir tema.

Jei norime susieti mokinių, kurie įstojo į tą patį dalyką, vardus, galime naudoti funkciją string_agg.

PASIRINKITE temą, string_agg ( vardas, ',' ) AS studentai
IŠ studentų
GRUPĖ PAGAL dalyką;

Vykdydami pateiktą užklausą, ji turėtų pateikti rezultatų rinkinį su dviem pagrindiniais stulpeliais: dalyku ir mokiniais. Mokiniai turi sujungti kiekvieno dalyko studentų vardus ir yra atskirti kableliu.

PASTABA : funkcija string_agg pagal numatytuosius nustatymus surūšiuoja sujungtas reikšmes. Norėdami išlaikyti pradinę tvarką, funkcijoje string_agg galite įtraukti sąlygą ORDER BY.

Štai jūs tai turite! Paprastas ir efektyvus būdas pasiekti panašią funkciją, kurią teikia Group_concat() funkcija PostgreSQL.

Išvada

Šioje trumpoje, bet veiksmingoje pamokoje sužinojome, kaip naudoti PostgreSQL funkciją string_agg, kad pasiektume panašias funkcijas, kurias teikia mySQL funkcija group_concat().