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

Google BigQuery数组聚合求和需求:同y值对应z值求和

解决方案

要实现你需要的效果,核心是先对相同x和y的记录汇总z的总和,再基于x进行数组聚合。具体步骤如下:

修正后的查询代码

WITH vals AS
  (
    SELECT 1 x, 'a' y, 120 z UNION ALL
    SELECT 1 x, 'a' y, 359 z UNION ALL
    SELECT 1 x, 'b' y, 130 z UNION ALL
    SELECT 2 x, 'a' y, 140 z UNION ALL
    SELECT 2 x, 'c' y, 160 z
  ),
summed_vals AS (
  SELECT x, y, SUM(z) AS sum_z
  FROM vals
  GROUP BY x, y
)
SELECT x, ARRAY_AGG(y) AS array_aggy, ARRAY_AGG(sum_z) AS array_aggz
FROM summed_vals
GROUP BY x;

代码说明

  1. summed_vals 公共表表达式:先按x和y分组,计算每组z的总和sum_z,这一步会把相同x下重复的y合并,同时汇总对应的z值。
  2. 最终聚合:基于处理后的summed_vals,再按x分组,用ARRAY_AGG分别聚合y和sum_z,就能得到你期望的结果。

执行结果

Row     x         array_aggy    array_aggz  
1       1             a            479
                      b            130

2       2             a            140
                      c            160

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:55:18