hive partition by

原始數據:

name     class    s
a1        2        74
a2        1        95
a3        1        95
a4        1        80
a5        2        92
a6         3        99
a7        3        99
a8        3        45
a9       3        55
a10        3        78

 

rank() over()

select * from                                                                      
(                                                                           
select name,class,s,rank() over(partition by class order by s desc) num from t1
)                                                                           
where num=1;

a2        1        95        1
a3        1        95        1
a5        2        92        1
a6         3        99        1
a7        3        99        1 

 

 

row_number() over()

select * from                                                                      
(                                                                           
select name,class,s,row_number() over(partition by class order by s desc) num from t2
)                                                                           
where num=1;
class     s        mm 
1        95        1  --95有兩名但是隻顯示一個
2        92        1
3        99        1 --99有兩名但也只顯示一個

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章