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

如何在BigQuery中计算重复数值数组列的元素总和?

如何在BigQuery中计算数值类型数组的元素总和

方法1:使用内置函数ARRAY_SUM()(推荐)

BigQuery提供了专门针对数值数组求和的内置函数ARRAY_SUM(),可直接对数组列调用,无需展开数组,且支持任意长度的数组(包括空数组)。

针对你的示例数据,查询语句如下:

SELECT 
  repeated_numeric,
  ARRAY_SUM(repeated_numeric) AS sum
FROM (
  SELECT [4, 5, 9] as repeated_numeric
  UNION ALL SELECT [2,3]
);

如果需要将空数组的求和结果返回0而非NULL,可结合IFNULL()函数处理:

SELECT 
  repeated_numeric,
  IFNULL(ARRAY_SUM(repeated_numeric), 0) AS sum
FROM your_table;

方法2:通过UNNEST()展开数组后求和

如果需要对数组元素执行额外逻辑(比如过滤特定值),可以先通过UNNEST()展开数组,再按原始行分组求和:

SELECT 
  original_row,
  repeated_numeric,
  SUM(element) AS sum
FROM (
  SELECT 
    ROW_NUMBER() OVER() AS original_row,
    repeated_numeric,
    element
  FROM (
    SELECT [4, 5, 9] as repeated_numeric
    UNION ALL SELECT [2,3]
  ), UNNEST(repeated_numeric) AS element
)
GROUP BY original_row, repeated_numeric
ORDER BY original_row;

结果验证

两种方法都会输出你期望的结果:

Rowrepeated_numericsum
1[4, 5, 9]18
2[2,3]5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:45:43