PostgreSQL 多行记录,合并某个字段的值,变成一行

//先创建一个聚合函数
create
AGGREGATE group_concat(anyelement) ( sfunc = array_append, -- 每行的操作函数,将本行append到数组里 stype = anyarray, -- 聚集后返回数组类型 initcond = '{}' -- 初始化空数组 ); //DROP AGGREGATE group_concat ( type anyelement ) ; 删除该函数
select a.site_planning_id,a.name, group_concat(b.label_name) from A a 
        LEFT JOIN B b ON a.id= b.id GROUP BY a.site_planning_id,a.name
site_planning_id
name
label_name
1 王一 爱音乐
1 王一 爱打球

查询结果:

site_planning_id
name
label_name
1 王一 {爱音乐,爱打球}

-end

原文地址:https://www.cnblogs.com/chuyuan/p/13392308.html