场景
如图,有一张基于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
本文介绍了如何使用PostgreSQL的string_agg函数实现根据'value'字段对数据库表RES_EXTEND_INFO进行分组,并获取每个value对应的全部resource_id。通过实例展示了如何将这些资源ID连接成字符串。同时提到了MySQL中类似功能的concat函数作为对比。
5326

被折叠的 条评论
为什么被折叠?



