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 studenciOD 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.