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

BigQuery中多数组合并为单数组的实现方案咨询

解决BigQuery中合并操作数组的问题

问题分析

你当前用string_agg把每行生成的JSON数组字符串直接拼接,导致输出多个独立数组。正确逻辑应该是先把每行的操作元素(ping/call)拆成单独记录,再聚合所有元素为一个数组,最后转成JSON格式。

解决方案

用UNNEST展开每行的操作元素数组,再通过ARRAY_AGG聚合所有元素为单个数组,最后用TO_JSON_STRING转成JSON字符串:

SELECT 
  id, 
  name,
  TO_JSON_STRING(ARRAY_AGG(elem)) AS chnl
FROM (
  SELECT 
    id, 
    name,
    -- 将每行的ping和call转为数组元素并展开
    UNNEST([
      STRUCT(recent_ping AS name, date_ts AS date),
      STRUCT(recent_call AS name, date_ts AS date)
    ]) AS elem
  FROM `pz-dev-it-0.dt_cust_tbls.ort_stg`
  -- 可选:过滤ping和call都为null的无操作行,需保留null则删除该条件
  WHERE recent_ping IS NOT NULL OR recent_call IS NOT NULL
)
GROUP BY id, name

效果说明

  • 内层查询通过UNNEST把每行的两个操作元素拆成独立行
  • 外层按id和name分组,用ARRAY_AGG将所有操作元素聚合成一个大数组
  • 最终用TO_JSON_STRING把数组转成符合预期的JSON格式,输出单个包含所有操作元素的数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:37:32