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

PostgreSQL如何聚合数组表数据到二维数组表并处理空值

解决PostgreSQL数组聚合时NULL值的问题

你的问题核心是array_agg函数默认会忽略NULL值,且无法直接聚合包含NULL的列,同时需要将NULL映射为空数组。可以通过coalesce函数先把NULL替换为空数组,再进行聚合。

正确的插入语句

insert into B (v) 
select array_agg(coalesce(v, '{}'::int[])) from A;

原理说明

  • coalesce(v, '{}'::int[]):将表A中v列的NULL值替换为int[]类型的空数组{},对于原本就是数组(包括空数组)的行,保留原数组值。
  • array_agg(...):此时聚合的所有值都是非NULL的数组,函数可以正常将它们聚合为二维数组,最终得到你需要的{{1,2,3},{},{},{4,5}}。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 21:02:04