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