PostgreSQL stöder dock inte inbyggt group_concat()-funktionen till skillnad från MySQL. Därför utforskar den här handledningen hur vi kan uppnå en liknande funktionalitet med funktionen string_agg().
PostgreSQL String_Agg Funktion
Funktionen string_agg i PostgreSQL tillåter oss att sammanfoga värden från flera rader till en enda sträng och separeras av den angivna parametern.
Funktionens syntaxanvändning visas enligt följande:
SELECT string_agg(kolumnnamn, avgränsare)
FRÅN tabellnamn
VAR förhållanden
GROUP BY grouping_columns;
Följande syntax uttrycks enligt följande:
kolumnnamn – Den anger namnet på den kolumn vars kolumn vi vill sammanfoga.
avgränsare – Den definierar separatortecknet som används när inmatningsvärdena sammanfogas.
tabellnamn – Måltabellen som innehåller data.
gruppering_kolumner – Den anger kolumnerna som används för att gruppera de angivna uppgifterna.
PostgreSQL String_Agg funktionsexempel
Låt oss ta ett mer praktiskt exempel för att illustrera hur funktionen fungerar. Anta att vi har en tabell som innehåller elevinformationen. Tabellen innehåller tre kolumner: id, namn och ämne.
Om vi vill sammanfoga elevernas namn som skrevs in i samma ämne kan vi använda string_agg-funktionen.
VÄLJ ämne, string_agg ( namn, ',' ) AS-studenterFRÅN studenter
GRUPPER EFTER ämne;
När vi väl kört den givna frågan bör den returnera en resultatuppsättning med två huvudkolumner: ämnet och eleverna. Eleverna innehåller sammanlänkade namn på elever för varje ämne och är åtskilda med ett kommatecken.
NOTERA : Funktionen string_agg sorterar de sammanlänkade värdena som standard. Du kan lägga till en ORDER BY-sats i string_agg-funktionen för att behålla den ursprungliga ordningen.
Där har du det! En enkel och effektiv metod för att uppnå en liknande funktionalitet som tillhandahålls av funktionen group_concat() i PostgreSQL.
Slutsats
I denna korta men effektiva handledning lärde vi oss hur man använder funktionen string_agg i PostgreSQL för att uppnå en liknande funktionalitet som tillhandahålls av funktionen group_concat() i MySQL.