MySQL的排名函数 RANK() OVER、DENSE_RANK() OVER、ROW_NUMBER() OVER 用法介绍
本篇介绍的三个函数均MySQL 8.x 以上版本,8.x以下版本会报语法错误,属于正常现象。
MySQL 8.x 实际上就是 MySQL 5.8x,大概是为了通过更大版本型号数字,证明自己比友商先进吧。
你可以通过 mysql --version (cmd命令)或者 select version() (sql语句)查看MySQL版本型号。
RANK() OVER(业务逻辑)
作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续。
说明:例如学生排名,使用这个函数,成绩相同的两名是并列,下一位同学空出所占的名次。即:1 1 3 4 5 5 7
SELECT id, name, score, rank() over(ORDER BY score DESC) AS 'rank' FROM student
DENSE_RANK() OVER(业务逻辑)
作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续。
说明:和rank() over 的作用相同,区别在于dense_rank() over 排名是密集连续的。例如学生排名,使用这个函数,成绩相同的两名是并列,下一位同学接着下一个名次。即:1 1 2 3 4 5 5 6
SELECT id, name, score, dense_rank() over(ORDER BY score DESC) AS 'rank' FROM student
ROW_NUMBER() OVER(业务逻辑)
作用:查出指定条件后的进行排名,条件相同排名也不相同,排名间断不连续。
说明:这个函数不需要考虑是否并列,即使根据条件查询出来的数值相同也会进行连续排序。即:1 2 3 4 5 6
SELECT id, name, score, row_number() over(ORDER BY score DESC) AS 'rank' FROM student
后记
函数中的业务逻辑可以是复杂的,不局限于 ORDER BY,也可以加 PARTITION BY。
### 分班级排名
SELECT id, name, score, class, row_number() over(PARTITION BY class ORDER BY score DESC) AS 'rank'
FROM student
MySQL的排名函数 RANK() OVER、DENSE_RANK() OVER、ROW_NUMBER() OVER 用法介绍相关推荐
- MYSQL实现排名函数RANK,DENSE_RANK和ROW_NUMBER
文章目录 1. 排名分类 1.1 区别RANK,DENSE_RANK和ROW_NUMBER 1.2 分组排名 2. 准备数据 3. 不分组排名 3.1 连续排名 3.2 并列跳跃排名 3.3 并列连续 ...
- mysql中的排名函数rank()、dense_rank()、row_number()
排名函数rank().dense_rank().row_number()的比较 1.问题描述 在写LeetCode178. 分数排名时,它的要求是输出"无间隔"的分数排名,于是本文 ...
- Oracle排名函数(Rank)实例详解
这篇文章主要介绍了Oracle排名函数(Rank)实例详解,需要的朋友可以参考下 --已知:两种排名方式(分区和不分区):使用和不使用partition --两种计算方式(连续,不连续),对应函数:d ...
- 分区函数Partition By的与row_number()的用法以及与排序rank()的用法详解(获取分组(分区)中前几条记录)...
partition by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指 ...
- MySQL rank() over、dense_rank() over、row_number() over 用法介绍
前言 本篇介绍的三个函数均MySQL 8.x 以上版本,8.x以下版本会报语法错误,属于正常现象. MySQL 8.x 实际上就是 MySQL 5.8x,大概是为了通过更大版本型号数字,证明自己比友商 ...
- oracle rank 语法_Oracle排名函数(Rank)实例详解
-- 已知:两种排名方式 ( 分区和不分区 ): 使用和不使用 partition -- 两种计算方式 ( 连续 , 不连续 ), 对应函数: dense_rank,rank ·查询原始数据:学号 , ...
- mysql的排名函数怎么用_MySQL排名函数
MySQL排名函数 MySQL使用一种排名功能,该函数使我们能够对数据库中分区的每一行进行排名.排名函数还是MySQL窗口函数的一部分. MySQL中的排名函数可以与以下子句一起使用: 他们总是使用O ...
- excel排名_WPS-Excel表格实用技巧——排位排名函数(RANK函数)的使用
平时使用excel表格处理数据时经常会用到排序功能,一般使用"升序"和"降序"工具按钮就可以完成简单的排序任务,但是当我们遇到相同数值在总体中的排名时,简单的& ...
- 使用函数求余弦函数的近似值_WPS-Excel表格实用技巧-排名函数RANK函数的使用
平时使用excel表格处理数据时经常会用到排序功能,一般使用"升序"和"降序"工具按钮就可以完成简单的排序任务,但是当我们遇到相同数值在总体中的排名时,简单的& ...
最新文章
- 【每日一算法】两个列表的最小索引总和
- SpringBoot配置属性之MQ
- 转载《全国研究生考试专业课资料大全(部分资料)》
- 理想边界尺寸怎么算_钻石型淋浴房三边尺寸怎么算?安装步骤有哪些?
- Visifire Silverlight Charts (基于SilverLight的Chart组件)
- 小程序canvasu真机上数据图片不能使用
- 带sex的net域名_中华网--科技频道
- 诺顿无法启动扫描,扫描引擎返回错误0x20000058错误
- php机械相关毕业设计,PHP+MySQL毕业设计选题管理系统(含论文)
- php 读取脸型,基于OpenCV的PHP图像人脸检测识别技术
- 多层材料热压工艺探索
- 简单网络管理协议SNMP通讯基础篇-熊健-专题视频课程
- 解决gitee/github上传图片数量受限
- 实验吧——安全杂项之“A记录”详解
- 有关键词和频率,怎么求共词矩阵?有报酬
- 谷歌滤镜软件叫什么_谷歌app爆红的拍照功能:你最像名画中的谁?
- 奥的斯电梯服务器自动呼梯,奥的斯MCS系统电梯轿厢内呼梯保密设置
- MySQL 数据表查询
- 二维码及验证码的生成
- 探花交友_第10章_实现推荐功能