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

如何在BigQuery中使用AND条件筛选REPEATED类型字段的重复值

BigQuery筛选同时满足多个条件的REPEATED字段实现方法

你原有查询的问题在于:将REPEATED类型的columnB拆分为单行后用IN筛选,只要行元素满足任意一个指定值就会被保留,只能实现“或”逻辑,无法判断原数组是否同时包含两个目标值。

方案1:直接数组判断(性能最优)

不需要展开数组,直接通过IN UNNEST语法判断两个目标值是否均存在于数组中,适合仅需返回columnA的场景:

SELECT columnA
FROM `your_project.your_dataset.your_table`
WHERE 11 IN UNNEST(columnB)
  AND 22 IN UNNEST(columnB)

方案2:聚合校验(适合需要返回原数组或做额外计算的场景)

如果需要同时返回符合条件的完整columnB数组,可以通过分组后校验匹配元素的去重数量实现:

SELECT columnA, ANY_VALUE(columnB) AS columnB
FROM `your_project.your_dataset.your_table`
CROSS JOIN UNNEST(columnB) AS b
WHERE b IN (11, 22)
GROUP BY columnA
-- 匹配到的去重元素数量等于目标值数量,说明两个值都存在
HAVING COUNT(DISTINCT b) = 2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:06:04