【发布时间】:2017-01-08 17:46:34
【问题描述】:
我使用的是 Postgresql 9.4,有一个表test,有id::int 和content::jsonb,如下:
id | content
----+-----------------
1 | {"a": {"b": 1}}
2 | {"a": {"b": 1}}
3 | {"a": {"b": 2}}
4 | {"a": {"c": 1}}
我如何在content 列的内部字段上GROUP BY 并将每个组作为数组返回?具体来说,我正在寻找的结果是:
content
---------------------------------
[{"a": {"b": 1}},{"a": {"b": 1}}]
[{"a": {"b": 2}}]
(2 rows)
尝试:
SELECT json_agg(content) as content FROM test GROUP BY content ->> '{a,b}';
产量:
content
----------------------------------------------------------------------
[{"a": {"b": 1}}, {"a": {"b": 1}}, {"a": {"b": 2}}, {"a": {"c": 1}}]
(1 row)
【问题讨论】:
-
请编辑您的问题并提供您正在寻找的结果。
-
@GordonLinoff 感谢您的关注!我已经改进了问题、我的尝试,并添加了我想要的结果。
标签: sql json postgresql postgresql-9.4 jsonb