Postgres Group_Concat

Postgres Group Concat



W MySQL funkcja GROUP_CONCAT jest funkcją agregującą, która łączy wartości z wielu wierszy w jeden ciąg. Jest powszechnie używany do zwijania wielu wierszy w jeden wiersz, łącząc powiązane dane.

Jednak PostgreSQL nie obsługuje natywnie funkcji group_concat() w przeciwieństwie do MySQL. W związku z tym w tym samouczku opisano, w jaki sposób możemy osiągnąć podobną funkcjonalność przy użyciu funkcji string_agg().

Funkcja PostgreSQL String_Agg

Funkcja string_agg w PostgreSQL pozwala nam połączyć wartości z wielu wierszy w jeden ciąg i jest oddzielony określonym parametrem.







Użycie składni funkcji przedstawiono w następujący sposób:



WYBIERZ string_agg(nazwa_kolumny, ogranicznik)
Z nazwa_tabeli
GDZIE warunki
GRUPUJ WEDŁUG grupowania_kolumn;

Poniższa składnia jest wyrażona w następujący sposób:



Nazwa kolumny – Określa nazwę kolumny, której kolumnę chcemy połączyć.





ogranicznik – Określa znak separatora, który jest używany przy łączeniu wartości wejściowych.

Nazwa tabeli – Tabela docelowa zawierająca dane.



grupowanie_kolumn – Określa kolumny używane do grupowania określonych danych.

Przykład funkcji PostgreSQL String_Agg

Weźmy bardziej praktyczny przykład, aby zilustrować działanie tej funkcji. Załóżmy, że mamy tabelę zawierającą informacje o uczniach. Tabela zawiera trzy kolumny: id, imię i temat.

Jeśli chcemy połączyć nazwiska uczniów zapisanych na ten sam przedmiot, możemy użyć funkcji string_agg.

WYBIERZ temat, string_agg ( nazwa, ',' ) JAK studenci
OD studentów
GRUPUJ WEDŁUG tematu;

Po uruchomieniu danego zapytania powinno ono zwrócić zestaw wyników z dwiema głównymi kolumnami: temat i uczniowie. Uczniowie zawierają połączone nazwiska uczniów dla każdego przedmiotu i są oddzielone przecinkiem.

NOTATKA : Funkcja string_agg domyślnie sortuje połączone wartości. Możesz dodać klauzulę ORDER BY wewnątrz funkcji string_agg, aby zachować pierwotną kolejność.

Masz to! Prosta i wydajna metoda osiągnięcia podobnej funkcjonalności zapewnianej przez funkcję group_concat() w PostgreSQL.

Wniosek

W tym krótkim, ale skutecznym samouczku nauczyliśmy się, jak używać funkcji string_agg w PostgreSQL, aby osiągnąć podobną funkcjonalność zapewnianą przez funkcję group_concat() w MySQL.