簡體   English   中英

有或從句中的BigQuery RANK()

[英]BigQuery RANK() in Having or Where Clause

在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,只是不能過濾。

感謝您的任何建議!

您可能需要做類似的事情

SELECT source, user, total, friends, user_rank

FROM (
    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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM