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

PostgreSQL如何将jsonb字段值聚合生成json数组

解决方案

要实现将PostgreSQL表中多行jsonb字段聚合为目标格式的json数组,使用内置聚合函数jsonb_agg即可实现。

前提准备

你提供的测试表结构及测试数据如下:

表结构

create table test(
  fjson jsonb
);

测试数据插入语句

insert into test values
('{"name":"A"}'::jsonb),
('{"name":"B"}'::jsonb),
('{"name":"C"}'::jsonb);

最简查询语句

直接执行以下SQL即可得到你需要的json数组结果:

SELECT jsonb_agg(fjson) AS json_array FROM test;

已验证的PL/pgSQL实现方案

如果需要在存储过程中实现逻辑,可以参考如下代码:

do $$ declare
    jdata jsonb;
begin
    create temp table test(
      fjson jsonb
    ) on commit drop;
    
    insert into test values
    ('{"name":"A"}'::jsonb),
    ('{"name":"B"}'::jsonb),
    ('{"name":"C"}'::jsonb);
    
    select (select jsonb_agg(fjson) from test) into jdata;
    raise notice '%',jdata;
end;
$$ language plpgsql;

说明

jsonb_agg是PostgreSQL原生提供的jsonb类型聚合函数,会自动将多行的jsonb值拼接为一个jsonb数组,输出格式和你期望的效果完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:09:03