![](/img/trans.png)
[英]How to convert results of a group by into a json using POSTGRESQL?
[英]How do I convert postgreSQL results to JSON?
我有這個 sql
select post_id, tag
from finalcache
order by tag, post_rank desc
它給出了這個結果。
我如何讓結果看起來像這樣?
{
"Politics": ["1e4fd2c5-c32e-4e3f-91b3-45478bcf0185"],
"Technology": [
"1e4fd2c5-c32e-4e3f-91b3-45478bcf0185",
"1e4fd2c5-c32e-4e3f-91b3-45478bcf0189",
"1e4fd2c5-c32e-4e3f-91b3-45478bcf0186",
]
}
我一直在嘗試這樣的json_build_object
和json_agg
的不同組合
select json_build_object(tag, json_agg(post_id))
from finalcache
group by tag, post_rank
order by tag, post_rank desc
但我只是沒有得到正確的回應。 任何幫助將不勝感激。
這是你可以做到的:
select json_agg(jposts) from (
select json_build_object(tag , ARRAY_AGG(post_id)) jposts
from mytable
group by tag
) t
db<> 在這里擺弄
首先為每一行准備 json 然后使用json_agg
聚合所有 json 行
嘗試這個:
WITH list AS
(
SELECT jsonb_agg(post_id) FILTER (WHERE tag = 'Politics') OVER () AS pol
, jsonb_agg(post_id) FILTER (WHERE tag = 'Technology') OVER () AS tech
FROM finalcache
ORDER BY post_rank desc
)
SELECT jsonb_build_object('Politics', l.pol, 'Technology', tech)
FROM list AS l
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.