Postgres Group_Concat

Postgres Group Concat



In MySQL ist die Funktion GROUP_CONCAT eine Aggregatfunktion, die die Werte aus mehreren Zeilen in einer einzigen Zeichenfolge verkettet. Es wird häufig verwendet, um mehrere Zeilen zu einer einzigen Zeile zusammenzufassen und dabei zusammengehörige Daten zu kombinieren.

Allerdings unterstützt PostgreSQL im Gegensatz zu MySQL die Funktion group_concat() nicht nativ. Daher untersucht dieses Tutorial, wie wir mit der Funktion string_agg() eine ähnliche Funktionalität erreichen können.

PostgreSQL String_Agg-Funktion

Die Funktion string_agg in PostgreSQL ermöglicht es uns, die Werte aus mehreren Zeilen in einer einzigen Zeichenfolge zu verketten und wird durch den angegebenen Parameter getrennt.







Die Verwendung der Funktionssyntax wird wie folgt veranschaulicht:



SELECT string_agg(column_name, delimiter)
VON Tabellenname
WO-Bedingungen
GROUP BY grouping_columns;

Die folgende Syntax lautet wie folgt:



Spaltenname – Es gibt den Namen der Spalte an, deren Spalte wir verketten möchten.





Trennzeichen – Es definiert das Trennzeichen, das beim Zusammenfügen der Eingabewerte verwendet wird.

Tabellenname – Die Zieltabelle, die die Daten enthält.



gruppierungsspalten – Es gibt die Spalten an, die zum Gruppieren der angegebenen Daten verwendet werden.

Beispiel für eine PostgreSQL-String_Agg-Funktion

Nehmen wir ein praktischeres Beispiel, um die Funktionsweise der Funktion zu veranschaulichen. Angenommen, wir haben eine Tabelle, die die Schülerinformationen enthält. Die Tabelle enthält drei Spalten: ID, Name und Betreff.

Wenn wir die Namen der Studenten verketten möchten, die sich für dasselbe Fach eingeschrieben haben, können wir die Funktion string_agg verwenden.

SELECT Betreff, string_agg ( Name, ',' ) AS-Studenten
VON Studenten
GRUPPE NACH Betreff;

Sobald wir die angegebene Abfrage ausführen, sollte sie eine Ergebnismenge mit zwei Hauptspalten zurückgeben: dem Betreff und den Schülern. Die Studierenden enthalten die aneinandergehängten Namen der Studierenden für jedes Fach und werden durch ein Komma getrennt.

NOTIZ : Die Funktion string_agg sortiert die verketteten Werte standardmäßig. Sie können eine ORDER BY-Klausel innerhalb der string_agg-Funktion hinzufügen, um die ursprüngliche Reihenfolge beizubehalten.

Hier hast du es! Eine unkomplizierte und effiziente Methode zum Erreichen einer ähnlichen Funktionalität, die von der Funktion „group_concat()“ in PostgreSQL bereitgestellt wird.

Abschluss

In diesem kurzen, aber effektiven Tutorial haben wir gelernt, wie man die Funktion string_agg in PostgreSQL verwendet, um eine ähnliche Funktionalität zu erreichen, die von der Funktion group_concat() in MySQL bereitgestellt wird.