在BigQuery中重复字段中计算值

时间:2016-09-19 05:38:18

标签: sql google-bigquery

我想在重复的字段中选择具有更多感谢k值的行。 (例如,考虑选择具有3个以上电子邮件地址的用户)

在标准SQL中我知道我可以使用

SELECT * FROM dataset.users
WHERE array_length(email_address) > 3

但是在BigQuery遗留SQL中执行此操作的方法是什么?

2 个答案:

答案 0 :(得分:5)

不需要子查询;您应该能够直接使用OMIT RECORD IF进行过滤:

SELECT *
FROM dataset.users
OMIT RECORD IF COUNT(email_address) <= 3;

但是,您是否介意评论为什么要使用旧版SQL?如果您遇到标准SQL的问题,我想了解它是什么,以便我们可以修复它。谢谢!

答案 1 :(得分:0)

  

在BigQuery的重复字段中计算值

BigQuery Legacy SQL

SELECT COUNT(email_address) WITHIN RECORD AS address_count
FROM [dataset.users]

如果您想要计算输出行数 - 可以使用下面的

SELECT COUNT(1) AS rows_count 
FROM (
  SELECT COUNT(email_address) WITHIN RECORD AS address_count
  FROM [dataset.users]
)
WHERE address_count> 3