将多行汇总到一个PostgreSQL中

时间:2019-12-05 04:01:55

标签: sql postgresql

有一个角色表

id |created_at             |updated_at             |role           |source |username
7  |2019-12-01 01:38:31.965|2019-12-01 01:38:31.965|ROLE_ADMIN     |ACCESS |mammar
8  |2019-12-01 01:38:33.061|2019-12-01 01:38:33.061|ROLE_SUPERADMIN|ACCESS |mammar

如何使用SQL查询获取输出:

username;role 
mammar , ROLE_ADMIN,ROLE_SUPERADMIN

2 个答案:

答案 0 :(得分:1)

请尝试在下面的查询中查询您的问题,并让我知道您是否仍然遇到任何问题。

    SELECT username
    ,STRING_AGG(ROLE, ',' ORDER BY ROLE) roles
FROM [Your_schema].ROLE
 GROUP BY username;

答案 1 :(得分:0)

这应该有效:

SELECT username, STRING_AGG(role) AS role
FROM my_table
GROUP BY username
;

这会将每个role中的username个条目归为一个字段。