2013-06-23 109 views
0

我想執行某個查詢,我可能需要一些幫助。 一方面它想總結前100個用戶的計數,但是我想通過table1的所有行的數量來劃分它。但我該怎麼做?我不能在Select語句中使用另一個計數,因爲這個分組是由。具有更多計數的Hive查詢

From(
SELECT count(1) AS count FROM table1 
GROUP BY Username 
ORDER BY count DESC limit 100 
) r 
Select sum(r.count)/?(Amount of all rows of table1) 
+1

我不完全清楚你的查詢的預期結果是什麼。你能添加一些樣本數據和預期的輸出嗎?謝謝。 –

回答

0

寫兩個查詢一個計數與限制和另一個沒有。加入他們沒有「在」條款和分開。

+0

您好,我媒體鏈接這樣做有:SELECT COUNT(*),SUM(b.count)從表1˚F計數加入 ( SELECT用戶名, COUNT(*)AS數量FROM表1 組通過用戶名 爲了通過計數DESC LIMIT 100000 )b,而其不工作 – user2426139

+0

應該是這樣的: 選擇總和(counter_per_user)作爲sum_of_100_counts, total_counter從 (SELECT COUNT(\ *)從表1 total_counter)聯接 (選擇用戶名,計數( \ *)counter_per_user from table1 group by username limit 100)b group by total_counter 在b中,您有第一個100個用戶。在一個你有總計數器。加入每個用戶後,你有自己的計數和總計數器,然後你總結前100個計數器,總計數 – dimamah

+0

非常感謝你的幫助 – user2426139