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

BigQuery中合并两个ARRAY_AGG结果,避免两次调用的实现方法

在BigQuery中单次查询获取多个去重数组列的解决方案

你完全可以在单次查询中同时生成两个去重数组列,甚至直接输出你需要的JSON格式结果,不需要发起两次调用,也不需要替换ARRAY_AGG函数。以下是两种实现方式:

方式1:直接返回两个数组列

这种方式最直接,一次查询就能得到col1_list和col2_list两个列,符合常规的数据返回格式:

SELECT
  ARRAY_AGG(DISTINCT col1) AS col1_list,
  ARRAY_AGG(DISTINCT col2) AS col2_list
FROM table1

方式2:返回JSON格式结果

如果需要直接输出类似{"col1_list":[v1,v2], "col2_list": [v3,v4]}的JSON对象,可以用TO_JSON_STRING结合STRUCT来打包结果:

SELECT
  TO_JSON_STRING(STRUCT(
    ARRAY_AGG(DISTINCT col1) AS col1_list,
    ARRAY_AGG(DISTINCT col2) AS col2_list
  )) AS result_json
FROM table1

说明

  • ARRAY_AGG(DISTINCT ...)支持在同一个查询中多次使用,分别针对不同列计算去重数组,完全不需要拆分两次查询或者用UNION(UNION用于合并行数据,不适合这种同时计算多列聚合的场景)。
  • 两种方式都只需要扫描一次table1,性能比两次调用更高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 23:03:14