码迷,mamicode.com
首页 > 其他好文 > 详细

hive之RANK排名

时间:2019-11-20 21:19:40      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:local   相同   des   style   ring   cal   span   孙悟空   查询   


RANK() 排序相同时会重复,总数不会变
DENSE_RANK() 排序相同时会重复,总数会减少
ROW_NUMBER() 会根据顺序计算

《小小的案例》

1)数据准备:
#vi score.txt
孙悟空 语文 87
孙悟空 数学 95
孙悟空 英语 68
大海 语文 94
大海 数学 56
大海 英语 84
宋宋 语文 64
宋宋 数学 86
宋宋 英语 84
婷婷 语文 65
婷婷 数学 85
婷婷 英语 78


2)需求:
计算每门学科成绩排名。

3)创建表:
create table score(
name string,
subject string,
score int)
row format delimited fields terminated by "\t";

4)将数据导入到表中:
load data local inpath ‘/xxx/score.txt‘ into table score;

5)按需求查询数据
select name,
subject,
score,
rank() over(partition by subject order by score desc) rp,
dense_rank() over(partition by subject order by score desc) drp,
row_number() over(partition by subject order by score desc) rmp
from score;

7)结果展示:
name subject score rp drp rmp
孙悟空 数学 95 1 1 1
宋宋 数学 86 2 2 2
婷婷 数学 85 3 3 3
大海 数学 56 4 4 4
宋宋 英语 84 1 1 1
大海 英语 84 1 1 2
婷婷 英语 78 3 2 3
孙悟空 英语 68 4 3 4
大海 语文 94 1 1 1
孙悟空 语文 87 2 2 2
婷婷 语文 65 3 3 3
宋宋 语文 64 4 4 4

hive之RANK排名

标签:local   相同   des   style   ring   cal   span   孙悟空   查询   

原文地址:https://www.cnblogs.com/yumengfei/p/11900720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!