PostgreSQL 中如何實現group_concat
阿新 • • 發佈:2020-10-11
之前在MySQL中使用group_concat,覺得超級好用。
今天在PostgreSQL需要用到這樣的場景,就去學習了一下。
在PostgreSQL中提供了array_agg的函式來實現聚合,不過返回的型別是Array。
如果我們需要得到一個字串型別的資料時,可以通過array_to_string(array_agg(欄位),',')方式來實現。
當然也有更加方便的函式來實現,string_agg(欄位,',')。
例如:(查新員工資訊,需要把角色合併)
SELECT T.ID,T.username,T.truename,array_to_string(array_agg(b.description),',') as roleName,T.emailaddress,T.project,T.groupname,T.enabled
FROM h_users T
LEFT JOIN user_role A ON T.ID = A.user_id
LEFT JOIN ROLE b ON A.role_id = b.ID
group by T.ID,T.username,T.truename,T.emailaddress,T.project,T.groupname,T.enabled
order by T.username
查詢結果: