在PostgreSQL中自定义聚集函数group_concat。
--自定义聚合函数group_concat
CREATE AGGREGATE group_concat(anyelement)
(
sfunc = array_append, -- 每行的操作函数,将本行append到数组里
stype = anyarray, -- 聚集后返回数组类型
initcond = '{}' -- 初始化空数组
);
--其中参数anyelement可以匹配任何类型,聚集后返回数组类型anyarray,该函数的功能是将每行的记录附加到数组里。
示例:
SELECT type,group_concat(name) from demo group by type
执行结果: