Postgres Group_Concat

Postgres Group Concat



I MySQL er GROUP_CONCAT-funktionen en aggregeret funktion, der sammenkæder værdierne fra flere rækker i en enkelt streng. Det bruges almindeligvis til at skjule flere rækker til en enkelt række ved at kombinere relaterede data.

PostgreSQL understøtter dog ikke native group_concat()-funktionen i modsætning til MySQL. Derfor undersøger denne vejledning, hvordan vi kan opnå en lignende funktionalitet ved hjælp af string_agg()-funktionen.

PostgreSQL String_Agg funktion

String_agg-funktionen i PostgreSQL giver os mulighed for at sammenkæde værdierne fra flere rækker til en enkelt streng og er adskilt af den angivne parameter.







Funktionens syntaksbrug er vist som følger:



SELECT string_agg(kolonnenavn, afgrænsningstegn)
FRA tabelnavn
HVOR forhold
GROUP BY grouping_columns;

Følgende syntaks er udtrykt som følger:



kolonnenavn – Det angiver navnet på den kolonne, hvis kolonne vi ønsker at sammenkæde.





afgrænsning – Den definerer det separatortegn, der bruges, når inputværdierne sammenføjes.

tabelnavn – Måltabellen, der indeholder dataene.



gruppering_kolonner – Det specificerer de kolonner, der bruges til at gruppere de angivne data.

PostgreSQL String_Agg funktionseksempel

Lad os tage et mere praktisk eksempel for at illustrere, hvordan funktionen fungerer. Antag, at vi har en tabel, som indeholder elevoplysningerne. Tabellen indeholder tre kolonner: id, navn og emne.

Hvis vi ønsker at sammenkæde elevernes navne, der er tilmeldt samme fag, kan vi bruge string_agg-funktionen.

VÆLG emne, string_agg ( navn, ',' ) AS-studerende
FRA studerende
GRUPPE EFTER emne;

Når vi har kørt den givne forespørgsel, skulle den returnere et resultatsæt med to hovedkolonner: emnet og eleverne. Eleverne indeholder de sammenkædede navne på elever for hvert fag og er adskilt af et komma.

BEMÆRK : Funktionen string_agg sorterer de sammenkædede værdier som standard. Du kan tilføje en ORDER BY-klausul inde i string_agg-funktionen for at bevare den oprindelige rækkefølge.

Der har du det! En ligetil og effektiv metode til at opnå en lignende funktionalitet leveret af funktionen group_concat() i PostgreSQL.

Konklusion

I denne korte, men effektive tutorial lærte vi, hvordan man bruger string_agg-funktionen i PostgreSQL for at opnå en lignende funktionalitet, der leveres af group_concat()-funktionen i MySQL.