我的json数据存储的内容如下:
{"values":{"a":0.65, "b":0.35}}
我想返回值为"值"中值最大的键。
所以在上面的情况下, 我想回来:
a
因为它具有最大值
某些行在数据中没有值:
{}
作为默认
我需要使用{}处理这些条目并返回Null。
答案 0 :(得分:2)
使用样本数据:
create temporary table tmp as
select '{"values":{"a":0.65, "b":0.35}}'::json as j;
insert into tmp values ('{}'::json);
您可以执行以下操作:
select (
select key from json_each_text(j::json->'values')
order by value::float desc limit 1
) as k
from tmp;