Перейти к содержанию

STRING_AGG

Функция STRING_AGG — другое имя GROUP_CONCAT, добавленное для совместимости с PostgreSQL. Она соединяет строковые значения выражения с разделителем и возвращает TEXT.

Значения NULL не учитываются. Если строк нет или все значения равны NULL, результат равен NULL. Разделитель по умолчанию — запятая. В обычном агрегатном вызове второй аргумент должен быть строковым литералом. Порядок соединения значений не гарантируется; его можно задать в оконном вызове через ORDER BY внутри OVER.

Синтаксис

STRING_AGG ( DISTINCT expression expression , ' string ' )

Параметры

DISTINCT позволяет учитывать только уникальные значения выражения.

С DISTINCT разрешен только один аргумент; свой разделитель задать нельзя.

Использование в окне

Функция также может использоваться как оконная с выражением OVER и необязательным FILTER. В оконном вызове DISTINCT не поддерживается.

Примеры

Подготовка тестового окружения

Пример использует тестовую таблицу items.

SELECT STRING_AGG(name, ', ') FROM items;