有没有一种方法可以检查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列,因此不得不将它们全部弄平似乎很乏味。
试试下面
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)