我想在重复字段中选择具有更多感谢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