假设我有像这样的行
Id|group1|group2|值
-|-|
5|1|2|55
5|1|3|66
5|2|1|66
4|1|3|77
我想按ID分组,这样我就有两排了
| id | json
| -------- | -------------
| 5 | {1: {2: 55, 3: 66}, 2: {1: 66}}
| 4 | {1: {3: 77}}
我尝试了用JSON_BUILD_OBJECT
Package 的JSON_OBJECT_AGG
的组合,结果是JSON_AGG
。这几乎给了我想要的东西。这些项目在一个数组中。数组中的每个对象只有一个外键,并且所有内键都是预期的。如果我可以组合数组中的所有对象,或者只是正确地构建对象,任何一种方法都可以解决问题。
1条答案
按热度按时间nnt7mjpx1#
您需要使用
jsonb_object_agg()
两次,首先按id, group1
聚合,然后仅按id
分组:在db<>fidlle.中进行测试