postgresql json数据返回具有最大值的键

时间:2014-12-10 18:03:54

标签: json postgresql

我的json数据存储的内容如下:

{"values":{"a":0.65, "b":0.35}} 

我想返回值为"值"中值最大的键。

所以在上面的情况下, 我想回来:

a

因为它具有最大值

某些行在数据中没有值:

{} 

作为默认

我需要使用{}处理这些条目并返回Null。

1 个答案:

答案 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;