ARRAY_AGG()
Собирает значения группы в массив (PostgreSQL).
Сигнатура
ARRAY_AGG(expr)PostgreSQL. Возвращает массив из всех значений группы. Поддерживает ORDER BY и DISTINCT внутри вызова. В MySQL аналога нет — используют JSON_ARRAYAGG().
SELECT user_id, ARRAY_AGG(DISTINCT role ORDER BY role)
FROM user_roles GROUP BY user_id;
-- 1 | {admin,editor}