Vendar pa PostgreSQL izvorno ne podpira funkcije group_concat() za razliko od MySQL. Zato ta vadnica raziskuje, kako lahko dosežemo podobno funkcionalnost s funkcijo string_agg().
Funkcija PostgreSQL String_Agg
Funkcija string_agg v PostgreSQL nam omogoča združevanje vrednosti iz več vrstic v en sam niz in je ločen z navedenim parametrom.
Uporaba sintakse funkcije je prikazana na naslednji način:
IZBERI string_agg(ime_stolpca, ločilo)
FROM ime_tabele
pogoji KJE
GROUP BY grouping_columns;
Naslednja sintaksa je izražena takole:
ime_stolpca – Določa ime stolpca, katerega stolpec želimo združiti.
ločilo – Določa ločilni znak, ki se uporablja pri združevanju vhodnih vrednosti.
ime_tabele – Ciljna tabela, ki vsebuje podatke.
združevanje_stolpcev – Podaja stolpce, ki se uporabljajo za združevanje navedenih podatkov.
Primer funkcije PostgreSQL String_Agg
Vzemimo bolj praktičen primer za ponazoritev delovanja funkcije. Recimo, da imamo tabelo, ki vsebuje informacije o študentih. Tabela vsebuje tri stolpce: id, ime in predmet.
Če želimo združiti imena študentov, ki so se vpisali na isti predmet, lahko uporabimo funkcijo string_agg.
IZBERI predmet, string_agg ( ime, ',' ) študenti ASOD študentov
GROUP BY predmet;
Ko zaženemo dano poizvedbo, bi morala vrniti niz rezultatov z dvema glavnima stolpcema: predmetom in študenti. Dijaki vsebujejo povezana imena dijakov za vsak predmet in so ločena z vejico.
OPOMBA : Funkcija string_agg privzeto razvrsti povezane vrednosti. V funkcijo string_agg lahko dodate klavzulo ORDER BY, da ohranite prvotni vrstni red.
Tukaj imaš! Preprosta in učinkovita metoda za doseganje podobne funkcionalnosti, ki jo zagotavlja funkcija group_concat() v PostgreSQL.
Zaključek
V tej kratki, a učinkoviti vadnici smo se naučili, kako uporabiti funkcijo string_agg v PostgreSQL, da dosežemo podobno funkcionalnost, ki jo nudi funkcija group_concat() v MySQL.