在Hive中,如果要对有重复字段的数据进行排序时,一般会用到以下几个函数
要求按照每门学科成绩进行排序,类似于学校的考试排名
根据结果来看这三个函数的作用就一目了然了
孙悟空 语文 87
孙悟空 数学 95
孙悟空 英语 68
大海 语文 94
大海 数学 56
大海 英语 84
宋宋 语文 64
宋宋 数学 86
宋宋 英语 84
婷婷 语文 65
婷婷 数学 85
婷婷 英语 78
create table score(name string,subject string,score int) row format delimited fields terminated by 't';
load data loacl inpath '/usr/ywq/' into table score;
select *,
rank() over(partition by subject order by score desc),
DENSE_RANK() over(partition by subject order by score desc),
ROW_NUMBER() over(partition by subject order by score desc)
from score;# 查询结果
score.name score.subject score.score c1 c2 c3
孙悟空 数学 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
本文发布于:2024-01-30 12:47:21,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170659004520099.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |