pg(PostgreSQL) 分组后获取组内某字段(ID或其他字段)集合
场景描述
需要在分组后对参与分组的数据记录ID进行汇总,并返回
例子
id | 名称 | 班级 |
---|---|---|
1 | 小明 | 一班 |
2 | 小洪 | 一班 |
3 | 小傻 | 一班 |
4 | 小二 | 二班 |
5 | 小蛋 | 二班 |
描述:对班级进行分组,并获取到当班级内的学生ID集合
需返回数据格式如下
id集合 | 班级 |
---|---|
1 ,2,3 | 一班 |
4,5 | 二班 |
解法: string_agg(text,text)
SELECT
string_agg(cast(id as varchar(32)), ',') as id集合,
班级
FROM
table_name
GROUP BY
班级
注:需要注意自己的数据库版本,可能不支持当前函数,若不支持需要自定义函数使用。实现详情出门右拐请百度