BigQuery REPEATED字段包含

时间:2016-07-09 00:31:22

标签: google-bigquery

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

我尝试做类似的事情:

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

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

2 个答案:

答案 0 :(得分:5)

尝试以下

send_mail

我意识到 - 虽然从你的例子中复制/粘贴我留下了一些额外的东西,可以删除而不会丢失结果 - 因此它不仅会告诉你是否有匹配(真/假)而是给你一些匹配的内容每条记录:

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

我认为Danny的回答在我的脑海中触发了这个:o)

答案 1 :(得分:4)

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

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