A PostgreSQL azonban natívan nem támogatja a group_concat() függvényt, ellentétben a MySQL-lel. Ezért ez az oktatóanyag azt vizsgálja, hogyan érhetünk el hasonló funkcionalitást a string_agg() függvény használatával.
PostgreSQL String_Agg függvény
A PostgreSQL string_agg függvénye lehetővé teszi, hogy több sorból származó értékeket egyetlen karakterláncba fűzzünk össze, és a megadott paraméter választja el egymástól.
A függvény szintaxis használatának bemutatása a következő:
SELECT string_agg(oszlopnév, határoló)
FROM tábla_neve
HOL feltételek
GROUP BY csoportosítás_oszlopok;
A következő szintaxist a következőképpen fejezzük ki:
oszlop_neve – Megadja annak az oszlopnak a nevét, amelynek oszlopát össze akarjuk fűzni.
határoló – Meghatározza a bemeneti értékek összekapcsolásakor használt elválasztó karaktert.
táblázat_neve – Az adatokat tartalmazó céltábla.
csoportosítás_oszlopok – Meghatározza azokat az oszlopokat, amelyek a megadott adatok csoportosítására szolgálnak.
Példa a PostgreSQL String_Agg függvényre
Vegyünk egy gyakorlatiasabb példát a függvény működésének szemléltetésére. Tegyük fel, hogy van egy táblázatunk, amely a tanulói információkat tartalmazza. A táblázat három oszlopot tartalmaz: azonosító, név és tárgy.
Ha össze akarjuk kapcsolni az azonos tárgyból beiratkozott hallgatók nevét, használhatjuk a string_agg függvényt.
SELECT tárgy, string_agg ( név, ',' ) AS hallgatókA diákoktól
GROUP BY tantárgyak szerint;
Az adott lekérdezés futtatása után egy eredményhalmazt kell visszaadnia két fő oszloppal: a tárgy és a hallgatók. A tanulók az egyes tárgyakhoz tartozó tanulók összefűzött neveit tartalmazzák, és vesszővel vannak elválasztva.
JEGYZET : A string_agg függvény alapértelmezés szerint rendezi az összefűzött értékeket. Az eredeti sorrend megőrzéséhez hozzáadhat egy ORDER BY záradékot a string_agg függvényen belül.
Tessék, itt van! Egy egyszerű és hatékony módszer hasonló funkcionalitás elérésére, amelyet a group_concat() függvény biztosít a PostgreSQL-ben.
Következtetés
Ebben a rövid, de hatékony oktatóanyagban megtanultuk, hogyan használhatjuk a string_agg függvényt a PostgreSQL-ben, hogy a MySQL-ben a group_concat() függvény által biztosított hasonló funkcionalitást érjük el.