统计BigQuery中重复字段的值



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

在标准SQL中,我知道我可以使用
SELECT * FROM dataset.users
WHERE array_length(email_address) > 3

但是在BigQuery遗留SQL中如何做到这一点?

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

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

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

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

最新更新