Hive的Rank函数
生活随笔
收集整理的這篇文章主要介紹了
Hive的Rank函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、函數說明
- RANK() 排序相同時會重復,總數不會變
- DENSE_RANK() 排序相同時會重復,總數會減少
- ROW_NUMBER() 會根據順序計算
- PERCENT_RANK:百分比排序
二、示例說明
示例表:
(1)創建hive表并導入數據
(2)計算每門學科的成績排名、
select *,rank() over(partition by subject order by score desc) r,dense_rank() over(partition by subject order by score desc) dr,row_number() over(partition by subject order by score desc) rr fromscore;查詢結果:
注;表格可能有點錯位,按序查看。
(3)求出每門學科前三名的學生
select *,r from (select *,rank() over(partition by subject order by score desc) r,dense_rank() over(partition by subject order by score desc) dr,row_number() over(partition by subject order by score desc) rr fromscore) as t2 where r<=3;查詢結果:
總結
以上是生活随笔為你收集整理的Hive的Rank函数的全部內容,希望文章能夠幫你解決所遇到的問題。