场景
如图,有一张基于pgsql的数据库表结构如下:
现在想按照value进行分组,并且取出每一个value关联的所有resource_id。
解决方法
这个需求需要一个类似于树形的查询结果,我们可以把每个value关联的所有resource_id以某种当时拼接起来,只要自己能够找到相应方式拿出来用就行了。经过查询pgsql支持的聚合查询,找到一个函数:
聚合函数:string_agg(resource_id, ',')
在数据库运行以下sql:
select value, string_agg(resource_id, ',') from RES_EXTEND_INFO group by value order by value;
得出结果
总结
- pgsql的聚合函数string_agg使用;
- mysql的拼接函数concat的使用:https://www.w3cschool.cn/mysql/5nab1ptx.html