簡體   English   中英

如何將 postgreSQL 結果轉換為 JSON?

[英]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_objectjson_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM