Postgres Group_Concat

Postgres Group Concat



V MySQL je funkce GROUP_CONCAT agregační funkcí, která spojuje hodnoty z více řádků do jednoho řetězce. Běžně se používá ke sbalení více řádků do jednoho řádku, přičemž se kombinují související data.

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 AS
OD 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.