BigQuery REPEATED字段包含

J.F*_*zke 1 google-bigquery

有没有一种方法可以检查BigQuery REPEATED字段是否包含特定值?

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

SELECT CASE WHEN column1 CONTAINS ("Test Value") THEN 1 ELSE 0 END FROM testdata
Run Code Online (Sandbox Code Playgroud)

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

Mik*_*ant 5

试试下面

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
Run Code Online (Sandbox Code Playgroud)

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

SELECT 
  id_or_whatever_key_column_you_have, 
  SUM(column1 CONTAINS ("Test Value")) WITHIN RECORD AS matches
FROM testdata
Run Code Online (Sandbox Code Playgroud)

我认为丹尼(Danny)的答案已在我脑海中触发了这一点:o)