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

如何从含jsonb列的PostgreSQL表生成合并后的单一jsonb数组

合并PostgreSQL表中jsonb数组为单一数组

假设你的表名为your_table(请根据实际表名替换),表结构及数据如下:

CREATE TABLE your_table (
    id INT,
    data JSONB
);

INSERT INTO your_table VALUES
(1, '["a", "b", "c"]'),
(2, '["a", "e", "y"]'),
(3, '["d", "e", "f"]');

要将data列的所有jsonb数组合并为一个单一数组,可使用以下两种方法:

方法1:拆分元素后聚合

先将每个jsonb数组拆分为独立元素,再将所有元素重新聚合成一个数组:

SELECT jsonb_agg(elem) AS merged_array
FROM your_table, jsonb_array_elements(data) AS elem;

方法2:直接数组合并(PostgreSQL 12+)

PostgreSQL 12及以上版本支持jsonb_concat_agg函数,可直接对jsonb数组进行合并:

SELECT jsonb_concat_agg(data) AS merged_array
FROM your_table;

执行上述任一语句,都会得到预期结果:

["a", "b", "c", "a", "e", "y", "d", "e", "f"]

注意:如果需要去除重复元素,可将jsonb_agg(elem)替换为jsonb_agg(DISTINCT elem);若使用第二种方法,可对合并后的数组再做去重处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:22:41