赞
踩
1.函数说明
RANK() 排序相同时会重复,总数不会变
DENSE_RANK() 排序相同时会重复,总数会减少
ROW_NUMBER() 会根据顺序计算
后面必须也跟over函数
2.数据准备
name | subject | score |
孙悟空 | 语文 | 87 |
孙悟空 | 数学 | 95 |
孙悟空 | 英语 | 68 |
大海 | 语文 | 94 |
大海 | 数学 | 56 |
大海 | 英语 | 84 |
宋宋 | 语文 | 64 |
宋宋 | 数学 | 86 |
宋宋 | 英语 | 84 |
婷婷 | 语文 | 65 |
婷婷 | 数学 | 85 |
婷婷 | 英语 | 78 |
3.创建 hive 表score并导入数据
4.需求
计算每门学科成绩排名。
5.按需求查询数据(我们将这三个函数一起使用看对比效果)
- select
- name,
- subject,
- score,
- rank() over(distribute by subject sort by score desc) rank,
- dense_rank() over(distribute by subject sort by score desc) dense_rank,
- row_number() over(distribute by subject sort by score desc) row_number
- from score;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。