目录

总结:

案例实操:


总结:

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

这三个函数常常和开窗函数结合在一起使用

案例实操:

1,计算没门科目的成绩排名:[isea@hadoop108 datas]$ cat score.txt
悟空      语文      87
悟空      数学      95
悟空      英语      68
八戒      语文      94
八戒      数学      56
八戒      英语      84
张飞      语文      64
张飞      数学      86
张飞      英语      84
小乔      语文      65
小乔      数学      85
小乔      英语      78创建hive表,并导入数据:
create table score(name string,subject string,score int)
row format delimited
fields terminated by '\t';load data local inpath '/opt/module/datas/score.txt' into table score;> select * from score;+-------------+----------------+--------------+--+
| score.name  | score.subject  | score.score  |
+-------------+----------------+--------------+--+
| 悟空          | 语文             | 87           |
| 悟空          | 数学             | 95           |
| 悟空          | 英语             | 68           |
| 八戒          | 语文             | 94           |
| 八戒          | 数学             | 56           |
| 八戒          | 英语             | 84           |
| 张飞          | 语文             | 64           |
| 张飞          | 数学             | 86           |
| 张飞          | 英语             | 84           |
| 小乔          | 语文             | 65           |
| 小乔          | 数学             | 85           |
| 小乔          | 英语             | 78           |
+-------------+----------------+--------------+--+计算每门科目的成绩排名:每门科目,表示要对科目进行分组,排名所以要排序。这里面的rank只是打标记而已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_number
from score;+-------------+----------------+--------------+-------+-------------+-------------+--+
| score.name  | score.subject  | score.score  | rank  | dense_rank  | row_number  |
+-------------+----------------+--------------+-------+-------------+-------------+--+
| 悟空          | 数学             | 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           |
+-------------+----------------+--------------+-------+-------------+-------------+--+2,求出每门学科前三名的学生?t1:
select *,row_number() over(partition by subject order by score desc) row_number
from score;select * from
(
select *,row_number() over(partition by subject order by score desc) row_number
from score)t1
where t1.row_number <= 3;+----------+-------------+-----------+----------------+--+
| t1.name  | t1.subject  | t1.score  | t1.row_number  |
+----------+-------------+-----------+----------------+--+
| 悟空       | 数学          | 95        | 1              |
| 张飞       | 数学          | 86        | 2              |
| 小乔       | 数学          | 85        | 3              |
| 张飞       | 英语          | 84        | 1              |
| 八戒       | 英语          | 84        | 2              |
| 小乔       | 英语          | 78        | 3              |
| 八戒       | 语文          | 94        | 1              |
| 悟空       | 语文          | 87        | 2              |
| 小乔       | 语文          | 65        | 3              |
+----------+-------------+-----------+----------------+--+

欢迎大家关注博主的公众号:stackoverflow

Hive的Rank排名(rank函数,dense_rank函数,row_numer函数)相关推荐

  1. hive窗口函数之排名函数row_number、rank和dense_rank

    文章目录 简单排名 分组排名 练习1-取前两名学生 练习2-连续签到次数 排名函数主要有row_number.rank和dense_rank. 简单排名 row_number是行号,不会重复,rank ...

  2. Oracle笔记 之 分组统计排名函数dense_rank/rank()-over()函数

    分组统计排名函数 解析 dense_rank/rank()-over()用于对数据进行统计排名. rank-over()函数对相同的统计值的排名相同,不同的统计值之间的排名不连续(相同统计值的排名均为 ...

  3. SQL 中 Rank、row_number、dense_rank 三种排序函数的区别

    现有一张工资表,需要对其进行排名,工资相同的人并列排名,然后再排名,很多刚接触的小伙伴估计第一时间想到Rank()函数或row_number() 函数,但是结果出来后并不是自己想要的,在这里就给大家介 ...

  4. Mysql常用函数之Rank 排名函数

    mysql中的排名函数 主要介绍一下mysql里面的排名函数,涉及到的函数有以下几个: rank().dense_rank().row_number() 1.准备工作 建立一个rank表: creat ...

  5. [Mysql] RANK()函数 | ROW_NUMBER()函数 | DENSE_RANK()函数

    窗口函数的基本语法 <窗口函数> OVER ([PARTITION BY <用于分组的列>] ORDER BY <用于排序的列>) ※ []中的内容可以省略 注意: ...

  6. 计算机rank函数怎么用积分排名,rank(怎样用rank函数排名)

    rank函数是排名函数.rank函数最常用的是求某一个数值在某一区域内的排名.rank函数语法形式:rank(number,ref,[order]) 函数名后面的参数中 number 为需要求排名的那 ...

  7. 基于hive的SQL排名函数详解

    前言 在hive的学习中接触到了三种很实用的排名函数,这些函数在Mysql8.0版本中也已存在, 分别是:Rank(),Dense_rank(),Row_number(), 虽然都是排名函数,但三者间 ...

  8. 第一篇博客-Sql排名函数DENSE_RANK

    Sql排名函数☞DENSE_RANK 1.DENSE_RANK函数介绍 dense_rank函数用于返回结果集的分区内每行的排名,函数考虑到了over子句中排序字段值相同的情况,over子句中排序字段 ...

  9. hive的row_number()、rank()和dense_rank()的区别以及具体使用

    参考:https://blog.csdn.net/qq_20641565/article/details/52841345?locationNum=5&fps=1 2016年10月17日 20 ...

最新文章

  1. web.xml初始化spring容器
  2. the content of the adapter has changed but listview did not
  3. 微软MVP张善友告诉你,微服务选型要注意这些地方
  4. 计算机考研择校真的要选大城市吗,2020考研,择校前要考虑的6大问题
  5. 火狐浏览器设置_[教程] 在谷歌浏览器和火狐浏览器里配置DoH加密DNS流量提高安全性...
  6. MediaStreamTrackAudioSourceNode
  7. 6 Linux之bash环境配置
  8. LINUX移植——内核移植(一)
  9. android qq音乐 本地歌曲,如何将手机qq音乐本地歌曲导入到电脑
  10. Arduino应用开发——手机APP控制LED
  11. 计算机视觉和模式识别领域企业论坛,第三届中国模式识别与计算机视觉大会(PRCV 2020)圆满举办...
  12. 桃李春风一杯酒 江湖夜雨十年灯
  13. 二、azkaban 指南
  14. 网盘上传文件服务器失败原因,win7系统在百度网盘上传文件一直失败的解决方法...
  15. 阿里开发手册 学习 记忆 理解 表达 融会贯通
  16. 四年级下册计算机有错必改教案,小学四年级下册语文《步行18里》必
  17. Spring系列学习之Spring Integration
  18. 分享各大OJ平台,干货满满
  19. 查看Linux系统有几块网卡
  20. 规律, 性质, 原则等概念, 概括解析

热门文章

  1. 配置sql server 2008镜像服务
  2. 排序算法的稳定性及其意义
  3. 第一届“攻城狮”IDC运维知识大赛主席团、裁判团以及专家团成员名单公布
  4. 大数据百亿市场引各方布局 商业模式不明恐陷炒作
  5. RD自身修养 纷繁的世界,迷途的羔羊
  6. 名帖175 苏轼 行书《寒食帖》
  7. 何慕雄:天龙八部破绽之北宋和契丹真是仇敌吗?
  8. 关于android http字段X-requested-with的说明
  9. WinHTTP的AutoProxy常见问题
  10. 《游戏设计艺术(第2版)》——学习笔记(16)第16章 体验可以用它们的兴趣曲线来评价