postgres将2列转换为带有数组的json

时间:2017-06-01 09:51:01

标签: sql json postgresql

我有Postgres数据库的下一个结果集: 实际上我从不和postgres json一起工作,而且我发现任何相同的例子

id | another_id
--------------
1  | 10
1  | 11
3  | 20
3  | 21
3  | 22

我需要将其转换为json字符串:

{"id":1 , "another_id" : {[10,11]}}
{"id":3 , "another_id" : {[20,21,22]}

2 个答案:

答案 0 :(得分:2)

您需要将json聚合与构建json对象结合使用:

select json_build_object('id', id, 'another_id', json_agg(another_id))
from the_table
group by id;

http://rextester.com/BCK50498

答案 1 :(得分:2)

to_json

的示例
x=# select to_json(s)
from (
  select id,array_agg(another_id) another_id
  from s1
  group by id
) s;
             to_json
----------------------------------
 {"id":1,"another_id":[10,11]}
 {"id":3,"another_id":[20,21,22]}
(2 rows)

介意在我的示例中,而不是{[10,11]}我得到[10,11],这对于json来说语法正确