本篇介绍的三个函数均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 用法介绍相关推荐

  1. MYSQL实现排名函数RANK,DENSE_RANK和ROW_NUMBER

    文章目录 1. 排名分类 1.1 区别RANK,DENSE_RANK和ROW_NUMBER 1.2 分组排名 2. 准备数据 3. 不分组排名 3.1 连续排名 3.2 并列跳跃排名 3.3 并列连续 ...

  2. mysql中的排名函数rank()、dense_rank()、row_number()

    排名函数rank().dense_rank().row_number()的比较 1.问题描述 在写LeetCode178. 分数排名时,它的要求是输出"无间隔"的分数排名,于是本文 ...

  3. Oracle排名函数(Rank)实例详解

    这篇文章主要介绍了Oracle排名函数(Rank)实例详解,需要的朋友可以参考下 --已知:两种排名方式(分区和不分区):使用和不使用partition --两种计算方式(连续,不连续),对应函数:d ...

  4. 分区函数Partition By的与row_number()的用法以及与排序rank()的用法详解(获取分组(分区)中前几条记录)...

    partition by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指 ...

  5. MySQL rank() over、dense_rank() over、row_number() over 用法介绍

    前言 本篇介绍的三个函数均MySQL 8.x 以上版本,8.x以下版本会报语法错误,属于正常现象. MySQL 8.x 实际上就是 MySQL 5.8x,大概是为了通过更大版本型号数字,证明自己比友商 ...

  6. oracle rank 语法_Oracle排名函数(Rank)实例详解

    -- 已知:两种排名方式 ( 分区和不分区 ): 使用和不使用 partition -- 两种计算方式 ( 连续 , 不连续 ), 对应函数: dense_rank,rank ·查询原始数据:学号 , ...

  7. mysql的排名函数怎么用_MySQL排名函数

    MySQL排名函数 MySQL使用一种排名功能,该函数使我们能够对数据库中分区的每一行进行排名.排名函数还是MySQL窗口函数的一部分. MySQL中的排名函数可以与以下子句一起使用: 他们总是使用O ...

  8. excel排名_WPS-Excel表格实用技巧——排位排名函数(RANK函数)的使用

    平时使用excel表格处理数据时经常会用到排序功能,一般使用"升序"和"降序"工具按钮就可以完成简单的排序任务,但是当我们遇到相同数值在总体中的排名时,简单的& ...

  9. 使用函数求余弦函数的近似值_WPS-Excel表格实用技巧-排名函数RANK函数的使用

    平时使用excel表格处理数据时经常会用到排序功能,一般使用"升序"和"降序"工具按钮就可以完成简单的排序任务,但是当我们遇到相同数值在总体中的排名时,简单的& ...

最新文章

  1. 【每日一算法】两个列表的最小索引总和
  2. SpringBoot配置属性之MQ
  3. 转载《全国研究生考试专业课资料大全(部分资料)》
  4. 理想边界尺寸怎么算_钻石型淋浴房三边尺寸怎么算?安装步骤有哪些?
  5. Visifire Silverlight Charts (基于SilverLight的Chart组件)
  6. 小程序canvasu真机上数据图片不能使用
  7. 带sex的net域名_中华网--科技频道
  8. 诺顿无法启动扫描,扫描引擎返回错误0x20000058错误
  9. php机械相关毕业设计,PHP+MySQL毕业设计选题管理系统(含论文)
  10. php 读取脸型,基于OpenCV的PHP图像人脸检测识别技术
  11. 多层材料热压工艺探索
  12. 简单网络管理协议SNMP通讯基础篇-熊健-专题视频课程
  13. 解决gitee/github上传图片数量受限
  14. 实验吧——安全杂项之“A记录”详解
  15. 有关键词和频率,怎么求共词矩阵?有报酬
  16. 谷歌滤镜软件叫什么_谷歌app爆红的拍照功能:你最像名画中的谁?
  17. 奥的斯电梯服务器自动呼梯,奥的斯MCS系统电梯轿厢内呼梯保密设置
  18. MySQL 数据表查询
  19. 二维码及验证码的生成
  20. 探花交友_第10章_实现推荐功能

热门文章

  1. python爬取天气与每日一笑并通过微信发送
  2. Ceph基础知识和基本架构介绍
  3. 神经网络中的常用算法-BN算法
  4. CRC-16标准校验算法
  5. 使用vtk提取模型模型边线2021-01-24
  6. Ubuntu Linux Vim用户 改键位
  7. 校园兼职平台青团社获数亿元B+轮融资,蚂蚁⾦服领投...
  8. MyEclipse 2017安装与激活
  9. C语言操作MYSQL简易教程
  10. LabVIEW编程LabVIEW开发的费用由什么决定