【问题标题】:BigQuery REPEATED field containsBigQuery REPEATED 字段包含
【发布时间】:2016-07-09 00:31:22
【问题描述】:

有没有办法检查 BigQuery REPEATED 字段是否包含特定值?

我正在尝试做类似的事情:

SELECT CASE WHEN column1 CONTAINS ("Test Value") THEN 1 ELSE 0 END FROM testdata

当 column1 是 REPEATED 模式的 STRING 类型字段时。 我有多个相同性质的 REPEATED 列,因此必须将它们全部展平似乎很乏味。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    下面试试

    SELECT 
      id_or_whatever_key_column_you_have, 
      SUM(CASE 
            WHEN column1 CONTAINS ("Test Value") THEN 1 
            ELSE 0 END
         ) WITHIN RECORD AS matches
    FROM testdata
    

    我意识到-从您的示例中复制/粘贴时,我留下了一些可以删除而不会丢失结果的额外内容-因此它不仅可以告诉您是否有匹配项(真/假),而且还可以为您提供匹配项的计数每条记录:

    SELECT 
      id_or_whatever_key_column_you_have, 
      SUM(column1 CONTAINS ("Test Value")) WITHIN RECORD AS matches
    FROM testdata
    

    我认为丹尼的回答在我的脑海中引发了这一点:o)

    【讨论】:

      【解决方案2】:

      您可以使用SOME 来完成此操作,例如

      SELECT SOME(column1 CONTAINS ("Test Value")) WITHIN RECORD FROM testdata
      

      【讨论】:

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