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

BigQuery Standard SQL如何排除hits双层嵌套数组的指定列

实现方案

Standard SQL 不支持直接用 EXCEPT 排除嵌套在子数组内的字段,你可以通过拆分+重组customDimensions子数组的方式实现需求,修改后的完整查询语句如下:

SELECT 
  fullVisitorId,
  visitId,
  visitNumber,
  cd.value as PCF_CUST_ID,
  date,
  TIMESTAMP_SECONDS(visitStartTime) as visitStartTime,
  totals.visits as visits,
  totals.hits as total_hits,
  -- 提取hits除customDimensions外的所有原生字段
  hits.* EXCEPT (customDimensions),
  -- 处理customDimensions数组,排除指定字段后重组回原结构
  ARRAY(
    SELECT customDimension.* EXCEPT (value, index)
    FROM UNNEST(hits.customDimensions) AS customDimension
  ) AS customDimensions
FROM `lt-pcf-analytics-exp.90676036.ga_sessions_*` as t
LEFT JOIN UNNEST(customDimensions) as cd
LEFT JOIN UNNEST(hits) as hits
WHERE 
  _TABLE_SUFFIX BETWEEN '20210101' AND '20210131' 
  AND cd.index = 4 
  AND cd.value IS NOT NULL
ORDER BY PCF_CUST_ID, visitStartTime, hitNumber

逻辑说明

  • 该写法完全保留hits原有字段结构,仅排除指定的两个嵌套字段,不需要调整后续的字段引用逻辑
  • 如果你不需要保留customDimensions数组结构,也可以直接删除customDimensions相关的处理语句,直接取hits下其他字段即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:06:05