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

如何在BigQuery中将长格式数据分组聚合为列表形式?

BigQuery实现订单与多商品ID的聚合转换

原表结构

orderIdproductId
123
124
127
225
226
327

目标表结构

orderIdproductIds
123,24,27
225,26
327

直接使用BigQuery的STRING_AGG聚合函数就能完成这个转换,核心SQL语句如下:

SELECT
  orderId,
  STRING_AGG(CAST(productId AS STRING), ',') AS productIds
FROM
  `你的项目ID.你的数据集ID.你的表名` -- 替换为实际的表路径
GROUP BY
  orderId;

关键说明:

  • STRING_AGG负责将同一orderId下的所有productId拼接成逗号分隔的字符串,由于productId是数值类型,需要先用CAST转成字符串类型才能参与拼接。
  • GROUP BY orderId用来按订单ID分组,确保每个订单对应的商品ID都聚合到一行。

如果需要让拼接后的商品ID保持特定顺序(比如升序),可以在STRING_AGG中加入排序逻辑:

SELECT
  orderId,
  STRING_AGG(CAST(productId AS STRING), ',' ORDER BY productId) AS productIds
FROM
  `你的项目ID.你的数据集ID.你的表名`
GROUP BY
  orderId;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 04:24:24