BigQuery REPEATED 字段包含
Posted
技术标签:
【中文标题】BigQuery REPEATED 字段包含【英文标题】:BigQuery REPEATED field contains 【发布时间】: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 列,因此必须将它们全部展平似乎很乏味。
【问题讨论】:
【参考方案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
【讨论】:
以上是关于BigQuery REPEATED 字段包含的主要内容,如果未能解决你的问题,请参考以下文章
BigQuery 中的字段可以具有 NULLABLE 和 REPEATED 模式吗?
BigQuery MERGE 查询不适用于空的 REPEATED 字段
使用 Flatten 从包含多个嵌套变量的 bigquery 表中选择 where var1 (non-repeated) = "abc"?