erv*_*azu 8 postgresql aggregate json
我很抱歉这个模糊的标题,但我根本不知道用什么合适的词来描述这个。
我有这个查询将一堆列转换为一个可以正常工作的对象:
SELECT row_to_json(t)
FROM (
SELECT type, properties, geometry FROM "bgbCargoMinardJSON"
) t
Run Code Online (Sandbox Code Playgroud)
但是,我想将属于某个类别的对象分组到一个数组中。该类别由我的表中名为“cargoProductId”的第四列定义。该数组应将“cargoProductId”的值作为键。所以:
SELECT row_to_json(t)
FROM (
SELECT type, properties, geometry FROM "bgbCargoMinardJSON"
) t
Run Code Online (Sandbox Code Playgroud)
所以我在过去的 1 1/2 小时左右一直在努力解决这个问题。我真的不知道如何做到这一点。这就是我现在所拥有的:
SELECT array_agg(row_to_json(t))
FROM (
SELECT type, properties, geometry FROM "bgbCargoMinardJSON"
) t) FROM "bgbCargoMinardJSON" GROUP BY "carProductId"
Run Code Online (Sandbox Code Playgroud)
Jac*_*las 10
如果您使用的是 9.4,则可能是这样的:
select json_object(array_agg(id)::text[],array_agg(rw)::text[])
from( select id
, ( select to_json(array_agg(row_to_json(t)))
from (select typ,prop from bgb where id=b.id) t ) rw
from bgb b
group by id ) z;
Run Code Online (Sandbox Code Playgroud)