【发布时间】:2014-04-25 14:43:02
【问题描述】:
在 BigQuery 中,我有一个查询,它使用 RANK() 函数按来源的总数对用户进行分组。我只关心前 10 名用户。目前,我在子选择中使用WHERE 子句在父查询中执行RANK() 函数以限制结果。有人可以向我解释如何在没有父查询的情况下完成此操作吗?我想运行的查询如下所示:
SELECT source, user, count( tweet_id ) as total, max( friends ) as friends,
RANK() OVER (PARTITION BY source ORDER BY total DESC, friends DESC ) as user_rank
FROM tweets
GROUP BY source, user
HAVING user_rank <= 10
但我得到错误:在表“tweets”中找不到字段“user_rank”。我可以 ORDER BY 使用 user_rank,只是不过滤。
感谢您的任何建议!
【问题讨论】:
标签: java sql google-app-engine google-bigquery