首页 > 解决方案 > 如何查询 postgres 以获取 json 格式的数据?

问题描述

在此处输入图像描述

从表中,我只想选择用户的名字和姓氏,前提是他们的年龄大于 10 岁,采用 json 格式。

所以查询的输出应该是

在此处输入图像描述

我可以选择创建一个 json 文本,但不确定如何应用 where 子句Key = 'AGE' and value > 10

这是我的查询

select json_object_agg(key,value) from table where key in ('firstname','lastname')

标签: sqlpostgresql

解决方案


添加带有FILTER子句的聚合:

SELECT id,
       json_object_agg(key, value) AS json,
FROM mytable
GROUP BY id
HAVING (max(value::integer) FILTER (WHERE key = 'AGE')) > 10;

推荐阅读