You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL如何将多行JSON聚合为单个JSON对象

合并多个单键JSON对象为单个JSON对象(PostgreSQL)

要把这些单个键值对的JSON合并成一个完整的JSON对象,jsonb_agg不适用是因为它会生成JSON数组,而非合并键值对。你可以用jsonb_object_agg(针对JSONB类型)或json_object_agg(针对JSON类型)来实现:

假设数据存储在表中

如果你的数据存放在表json_data的data列(类型为jsonb),执行以下SQL:

SELECT jsonb_object_agg(key, value) AS combined_json
FROM json_data, jsonb_each(data);

如果列类型是普通json,替换为:

SELECT json_object_agg(key, value) AS combined_json
FROM json_data, json_each(data);

直接处理临时数据

如果是临时测试数据,可用VALUES子句构造数据源:

SELECT jsonb_object_agg(key, value) AS combined_json
FROM (
  VALUES
    ('{"0": 2}'::jsonb),
    ('{"2": 0}'::jsonb),
    ('{"3": 0}'::jsonb),
    ('{"4": 1}'::jsonb),
    ('{"13": 0}'::jsonb)
) AS temp(data),
jsonb_each(data);

执行后会输出你需要的单个JSON对象:

{
  "0": 2,
  "2": 0,
  "3": 0,
  "4": 1,
  "13": 0
}

内容的提问来源于stack exchange,提问作者Vince

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 01:54:55