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

BigQuery中如何将多个列合并为数组或结构体

BigQuery多列合并为数组/结构体实现方案

方案1:输出为整数数组(符合需求中的目标格式)

无需手动枚举所有列名,仅需排除key列即可实现,代码如下:

SELECT
  key,
  -- 提取除key外的所有列,转成整数数组
  ARRAY(SELECT CAST(col_val AS INT64) FROM UNNEST(JSON_VALUE_ARRAY(TO_JSON_STRING(t.* EXCEPT(key)))) AS col_val) AS col
FROM `你的项目ID.你的数据集名.你的表名` t

适用场景:需要输出统一数组格式,用于导出外部系统或后续处理要求数组结构的场景。

方案2:输出为结构体(实现更简便,性能更高)

如果业务逻辑可以接受结构体格式,无需做任何序列化转换,直接用以下代码即可,性能远高于数组方案:

SELECT
  key,
  -- 直接取除key外的所有列封装为结构体
  t.* EXCEPT(key) AS col
FROM `你的项目ID.你的数据集名.你的表名` t

适用场景:后续计算仍在BigQuery内完成,不需要强制数组格式的场景,保留所有原始列的类型和名称信息,无额外计算开销。

注意事项

如果你的表中除了key和需要合并的60个整数列外,还有其他不需要合并的字段,只需在EXCEPT的括号中加入对应字段名即可,例如EXCEPT(key, create_time, operator)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 08:45:08