我试图在一个表中生成一个 PSQL 查询,该表具有 id、description 和 session_unique_id 等值。我想选择像一组 json 数组一样的数据,每个数组都有每行的 json 数据,它们具有相同的 session_unique_id。
我期待这样的结果。
[
[
{"id":"1","description":"test","session_unique_id":"123"},
{"id":"2","description":"test","session_unique_id":"123"},
{"id":"3","description":"test","session_unique_id":"123"}
],
[
{"id":"4","description":"test","session_unique_id":"124"},
{"id":"5","description":"test","session_unique_id":"124"},
{"id":"6","description":"test","session_unique_id":"124"}],
[
{"id":"7","description":"test","session_unique_id":"125"},
{"id":"8","description":"test","session_unique_id":"125"},
{"id":"9","description":"test","session_unique_id":"125"}
]
]
最佳答案
使用to_jsonb()
将行转换为 jsonb 和 jsonb_agg()
两次聚合嵌套数组中的数据:
select jsonb_agg(unique_id order by session_unique_id)
from (
select session_unique_id, jsonb_agg(to_jsonb(t)) as unique_id
from my_table t
group by session_unique_id
) t;
在这里测试:SqlFiddle.
关于sql - PSQL 查询将值生成为具有相同唯一 ID 的 json 的 json 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47765915/