Postgres Group_Concat

Postgres Group Concat



MySQL-is on funktsioon GROUP_CONCAT koondfunktsioon, mis ühendab mitme rea väärtused üheks stringiks. Seda kasutatakse tavaliselt mitme rea ahendamiseks üheks reale, ühendades sellega seotud andmed.

PostgreSQL ei toeta aga erinevalt MySQL-ist funktsiooni group_concat(). Seetõttu uurib see õpetus, kuidas saaksime funktsiooni string_agg() abil saavutada sarnase funktsiooni.

PostgreSQL String_Agg funktsioon

PostgreSQL-i funktsioon string_agg võimaldab meil liita mitme rea väärtused üheks stringiks ja see eraldatakse määratud parameetriga.







Funktsiooni süntaksi kasutamine on näidatud järgmiselt:



SELECT string_agg(veeru_nimi, eraldaja)
FROM tabeli_nimi
KUS tingimused
GROUP BY rühmitamise_veerud;

Järgmine süntaks on väljendatud järgmiselt:



veeru_nimi – See määrab veeru nime, mille veergu soovime ühendada.





piiritleja – See määrab eraldusmärgi, mida kasutatakse sisendväärtuste ühendamisel.

tabeli_nimi – sihttabel, mis sisaldab andmeid.



rühmitamine_veerud – See määrab veerud, mida kasutatakse määratud andmete rühmitamiseks.

PostgreSQL String_Agg funktsiooni näide

Toome funktsiooni toimimise illustreerimiseks praktilisema näite. Oletame, et meil on tabel, mis sisaldab õpilase teavet. Tabel sisaldab kolme veergu: id, nimi ja teema.

Kui soovime ühendada samasse ainesse registreerunud õpilaste nimed, saame kasutada funktsiooni string_agg.

SELECT teema, string_agg ( nimi, ',' ) AS õpilased
õpilastelt
GROUP BY BY;

Kui oleme antud päringu käivitanud, peaks see tagastama kahe peamise veeruga tulemuste komplekti: aine ja õpilased. Õpilased sisaldavad iga õppeaine õpilaste liitnimesid ja on eraldatud komaga.

MÄRGE : Funktsioon string_agg sorteerib ühendatud väärtused vaikimisi. Algse järjestuse säilitamiseks saate funktsiooni string_agg sisse lisada klausli ORDER BY.

Siin on see! Lihtne ja tõhus meetod sarnase funktsiooni saavutamiseks, mida pakub PostgreSQL-i funktsioon group_concat().

Järeldus

Selles lühikeses, kuid tõhusas õpetuses õppisime, kuidas kasutada PostgreSQL-is funktsiooni string_agg, et saavutada MySQL-i funktsioon group_concat() sarnane funktsionaalsus.