小编JGe*_*Gem的帖子

Postgres GROUP BY在jsonb内场

我正在使用Postgresql 9.4并有一个表test,用id::intcontent::jsonb,如下:

 id |     content
----+-----------------
  1 | {"a": {"b": 1}}
  2 | {"a": {"b": 1}}
  3 | {"a": {"b": 2}}
  4 | {"a": {"c": 1}}
Run Code Online (Sandbox Code Playgroud)

如何GROUP BYcontent列中的内部字段上将每个组作为数组返回?具体来说,我要找的结果是:

             content
---------------------------------
[{"a": {"b": 1}},{"a": {"b": 1}}]
[{"a": {"b": 2}}]
(2 rows)
Run Code Online (Sandbox Code Playgroud)

试:

SELECT json_agg(content) as content FROM test GROUP BY content ->> '{a,b}';
Run Code Online (Sandbox Code Playgroud)

产量:

                               content
----------------------------------------------------------------------
[{"a": {"b": 1}}, {"a": {"b": 1}}, {"a": {"b": 2}}, {"a": {"c": 1}}]
(1 row)
Run Code Online (Sandbox Code Playgroud)

sql postgresql json jsonb postgresql-9.4

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

json ×1

jsonb ×1

postgresql ×1

postgresql-9.4 ×1

sql ×1