PostgreSQL 13如何将按日期分组的统计查询结果返回为指定格式JSON
PostgreSQL 13 输出指定格式JSON的SQL调整方案
你可以直接使用PostgreSQL内置的json_object_agg聚合函数实现需求,该函数可以将两列的值分别作为JSON的键和值,直接聚合生成符合要求的JSON对象。
最终调整后的SQL
SELECT json_object_agg( DATE(updated_at)::TEXT, cnt ) AS date_count_json FROM ( -- 内层保留你原有的分组统计逻辑 SELECT DATE(user.updated_at) AS dt, COUNT(*) AS cnt FROM users AS user GROUP BY dt ) AS subquery;
补充说明
- 如果需要在psql命令行中直接输出纯JSON字符串、不带列名等多余格式,可以先执行psql元命令
\pset tuples_only on再运行上述SQL,输出结果就会是纯净的JSON内容。 - 这里显式把日期类型转成文本是为了避免不同环境下的类型隐式转换异常,如果你不需要额外处理也可以省略
::TEXT后缀,PostgreSQL生成JSON时会自动把日期值转成字符串格式的键。
内容的提问来源于stack exchange,提问作者mgi
相关产品推荐
相关产品推荐

