В PostgreSQL 9.0 или более поздней версии string_agg(val, ',')
.
Возвращает строку с разделителями по вашему выбору.
array_agg(val)
возвращает массив , что неудивительно.Фигурные скобки, которые вы видите, являются неотъемлемой частью литералов массива - текстового представления массивов.
В более старых версиях (или любой другой версии) вы можете заменить на array_to_string(array_agg(val), ',')
.
Или quick'n'dirty: trim(array_agg(val)::text, '{}'
- если значения никогда не начинаются и не заканчиваются фигурными скобками.