按 bigquery 中的 REPEATED 值过滤
Posted
技术标签:
【中文标题】按 bigquery 中的 REPEATED 值过滤【英文标题】:Filter by REPEATED values in bigquery 【发布时间】:2021-11-17 12:54:56 【问题描述】:如何使用 AND 条件过滤 bigquery 中的重复值 例如
当 B 列同时包含 11 和 22 时,我想从 A 列中选择值
如果 11 或 22 存在,下面的查询会告诉我,但我需要 AND 所以我应该得到测试 1 和测试 2,而不是测试 3
SELECT columnA, columnB
FROM table CROSS JOIN UNNEST (columnB) as b
Where B in (11,22)
【问题讨论】:
【参考方案1】:查看Scanning for values that satisfy a condition:
SELECT columnA, columnB
FROM table
WHERE EXISTS(SELECT * FROM UNNEST(columnB) AS b WHERE b = 11)
AND EXISTS(SELECT * FROM UNNEST(columnB) AS b WHERE b = 22)
【讨论】:
【参考方案2】:另一种选择
select *
from table t
where 2 = (
select count(distinct val)
from t.ColumnB val
where val in (11,22)
)
如果应用于您问题中的样本数据 - 输出是
【讨论】:
以上是关于按 bigquery 中的 REPEATED 值过滤的主要内容,如果未能解决你的问题,请参考以下文章
BigQuery:如何将字段添加到 REPEATED 记录?
BigQuery MERGE 查询不适用于空的 REPEATED 字段
使用 Flatten 从包含多个嵌套变量的 bigquery 表中选择 where var1 (non-repeated) = "abc"?