【问题标题】:Filter by REPEATED values in bigquery按 bigquery 中的 REPEATED 值过滤
【发布时间】: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)

【问题讨论】:

    标签: arrays google-bigquery


    【解决方案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)
      )       
      

      如果应用于您问题中的样本数据 - 输出是

      【讨论】:

        猜你喜欢
        • 2016-10-23
        • 1970-01-01
        • 2023-03-03
        • 2019-01-26
        • 2018-11-07
        • 1970-01-01
        • 2015-11-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多