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 studentaiIŠ 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().