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有两名但也只显示一个

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