美文网首页
hive的排序函数 rank(),dense_rank(),ro

hive的排序函数 rank(),dense_rank(),ro

作者: 进击的小恶魔 | 来源:发表于2020-04-17 11:21 被阅读0次

建表:

create table test_rank(
name string,
subject string,
score  string
)
;

插入数据:

insert overwrite table test_rank values
('孙悟空','语文','87'),
('孙悟空','数学','95'),
('孙悟空','英语','68'),
('沙悟净','语文','94'),
('沙悟净','数学','56'),
('沙悟净','英语','78'),
('宋松松','语文','64'),
('宋松松','数学','86'),
('宋松松','英语','84'),
('罗婷婷','语文','87'),
('罗婷婷','数学','85'),
('罗婷婷','英语','78')
;

执行排序代码:

select * ,
    RANK()  over(partition by subject  order by score desc) rank,
    DENSE_RANK()  over(partition by subject  order by score desc) dense_rank ,
    ROW_NUMBER()  over(partition by subject  order by score desc) row_num
from test_rank
;

输出结果:


image.png

全国排名TOP5的大学有20所,我怀疑就是用dense_rank() 计算的。。

另外,不常用的排序函数还有:percent_rank(),ntile()。

相关文章

网友评论

      本文标题:hive的排序函数 rank(),dense_rank(),ro

      本文链接:https://www.haomeiwen.com/subject/skkevhtx.html