通过此选择:
json_agg(json_build_object("id", price::money))
我得到结果值:
[
{"6" : "$475.00"},
{"6" : "$1,900.00"},
{"3" : "$3,110.00"},
{"3" : "$3,110.00"}
]
我希望使用这种格式的数据:
{
"6": ["$475.00","$1,900.00"],
"3": ["$3,110.00","$3,110.00"]
}
在服务器上查询或与jsonb一起使用时,这些ID是重复的,并且只有一对键值可以使它们通过。
答案 0 :(得分:2)
您应按ID分组汇总价格,并使用汇总函数json_object_agg()
。您必须使用派生表(from子句中的子查询),因为聚合不能嵌套:
select json_object_agg(id, prices)
from (
select id, json_agg(price::money) as prices
from my_table
group by id
) s