簡體   English   中英

從postgres中的json對象的值中提取密鑰

[英]Extracting key from the value of json object in postgres

假設我在名為test的表的特定列中有一個json對象{'key1':0.5,'key2':0.3,'key3':0.1} 我想返回最高值的鍵。 為了獲得最高的價值,在postgres中,我可以編寫以下查詢:

select greatest(column1->'key1',column1->'key2',column1->'key3') from test

現在,它返回最大值。 但是我想要的是與最高價值相關的鑰匙。 在postgres json查詢中可能嗎?

您需要將所有鍵/值對提取為行。 完成此操作后,這就是問題-盡管在查看所有行時都沒有“組”。

select k,val
from (
  select t.*, row_number() over (order by t.val::numeric desc) as rn
  from jsonb_each_text('{"key1":0.5,"key2":0.3,"key3":0.1}'::jsonb) as t(k,val)
) t
where rn = 1;

在線示例: http : //rextester.com/OLBM23414

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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