PostgreSQL обаче не поддържа първоначално функцията group_concat() за разлика от MySQL. Ето защо този урок изследва как можем да постигнем подобна функционалност с помощта на функцията string_agg().
Функция PostgreSQL String_Agg
Функцията string_agg в PostgreSQL ни позволява да свържем стойностите от множество редове в един низ и е разделен от посочения параметър.
Използването на синтаксиса на функцията е показано, както следва:
ИЗБЕРЕТЕ string_agg(име_на_колона, разделител)
ОТ име_таблица
КЪДЕ условия
ГРУПИРАНЕ ПО grouping_columns;
Следният синтаксис е изразен по следния начин:
име_на_колона – Указва името на колоната, чиято колона искаме да свържем.
разделител – Определя разделителния знак, който се използва при свързване на входните стойности.
име_на_таблица – Целевата таблица, която съдържа данните.
групиране_колони – Указва колоните, които се използват за групиране на посочените данни.
Пример за функция String_Agg на PostgreSQL
Нека вземем по-практичен пример, за да илюстрираме как работи функцията. Да предположим, че имаме таблица, която съдържа информацията за студентите. Таблицата съдържа три колони: идентификатор, име и тема.
Ако искаме да свържем имената на студентите, които са се записали по същия предмет, можем да използваме функцията string_agg.
ИЗБЕРЕТЕ тема, string_agg ( име, ',' ) AS студентиОТ студенти
ГРУПИРАНЕ ПО предмет;
След като изпълним дадената заявка, тя трябва да върне набор от резултати с две основни колони: предмет и ученици. Учениците съдържат свързаните имена на ученици за всеки предмет и са разделени със запетая.
ЗАБЕЛЕЖКА : Функцията string_agg сортира свързаните стойности по подразбиране. Можете да добавите клауза ORDER BY във функцията string_agg, за да поддържате оригиналния ред.
Ето го! Прост и ефективен метод за постигане на подобна функционалност, предоставена от функцията group_concat() в PostgreSQL.
Заключение
В този кратък, но ефективен урок научихме как да използваме функцията string_agg в PostgreSQL, за да постигнем подобна функционалност, предоставена от функцията group_concat() в MySQL.