PostgreSQL však na rozdíl od MySQL nativně nepodporuje funkci group_concat(). Proto tento tutoriál zkoumá, jak můžeme dosáhnout podobné funkce pomocí funkce string_agg().
Funkce PostgreSQL String_Agg
Funkce string_agg v PostgreSQL nám umožňuje zřetězit hodnoty z více řádků do jednoho řetězce a je oddělena zadaným parametrem.
Použití syntaxe funkce je znázorněno následovně:
SELECT string_agg(název_sloupce, oddělovač)
FROM název_tabulky
KDE podmínky
GROUP BY seskupení_sloupců;
Následující syntaxe je vyjádřena následovně:
název_sloupce – Určuje název sloupce, jehož sloupec chceme zřetězit.
oddělovač – Definuje oddělovací znak, který se použije při spojování vstupních hodnot.
název_tabulky – Cílová tabulka, která obsahuje data.
seskupení_sloupců – Určuje sloupce, které se používají k seskupování zadaných dat.
Příklad funkce PostgreSQL String_Agg
Vezměme si praktičtější příklad, abychom ilustrovali, jak funkce funguje. Předpokládejme, že máme tabulku, která obsahuje informace o studentech. Tabulka obsahuje tři sloupce: id, jméno a předmět.
Pokud chceme zřetězit jména studentů, kteří si zapsali stejný předmět, můžeme použít funkci string_agg.
SELECT předmět, řetězec_agg ( název, ',' ) studenti ASOD studentů
GROUP BY předmětu;
Jakmile spustíme daný dotaz, měl by vrátit sadu výsledků se dvěma hlavními sloupci: předmět a studenti. Studenti obsahují zřetězená jména studentů pro každý předmět a jsou odděleni čárkou.
POZNÁMKA : Funkce string_agg standardně třídí zřetězené hodnoty. Do funkce string_agg můžete přidat klauzuli ORDER BY, abyste zachovali původní pořadí.
Tady to máš! Přímá a účinná metoda k dosažení podobné funkčnosti, kterou poskytuje funkce group_concat() v PostgreSQL.
Závěr
V tomto krátkém, ale účinném tutoriálu jsme se naučili používat funkci string_agg v PostgreSQL k dosažení podobné funkčnosti, kterou poskytuje funkce group_concat() v MySQL.