MySQL 排名函数 RANK, DENSE_RANK, ROW_NUMBER

news2024/10/5 9:58:12

文章目录

  • 1 排名函数有哪些?
  • 2 SQL 代码实现
    • 2.1 RANK
    • 2.2 DENSE_RANK
    • 2.3 ROW_NUMBER

1 排名函数有哪些?

  • RANK(): 并列跳跃排名, 并列即相同的值, 相同的值保留重复名次, 遇到下一个不同值时, 跳跃到总共的排名
  • DENSE_RANK(): 并列连续排序, 并列即相同的值, 相同的值保留重复名次, 遇到下一个不同值时, 依然按照连续数字排名
  • ROW_NUMBER(): 连续排名, 即使相同的值, 依旧按照连续数字进行排名

RANK, DENSE_RANK, ROW_NUMBER 函数在查询结果上的区别
image.png

2 SQL 代码实现

t_scores 表

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| score       | decimal |
+-------------+---------+

在 SQL 中, id 是该表的主键
该表的每一行都包含了一场比赛的分数, score 是一个有两位小数点的浮点值

2.1 RANK

RANK(): 并列跳跃排名, 并列即相同的值, 相同的值保留重复名次, 遇到下一个不同值时, 跳跃到总共的排名
RANK() OVER(ORDER BY score DESC) 对 score 字段升序排序, 进行排名

SELECT score,  RANK() OVER(ORDER BY score ASC) as "rank" FROM t_scores;

查询结果:
image.png

2.2 DENSE_RANK

DENSE_RANK(): 并列连续排序, 并列即相同的值, 相同的值保留重复名次, 遇到下一个不同值时, 依然按照连续数字排名

SELECT score,  DENSE_RANK() OVER(ORDER BY score ASC) as "rank" FROM t_scores;

查询结果:
image.png

2.3 ROW_NUMBER

ROW_NUMBER(): 连续排名, 即使相同的值, 依旧按照连续数字进行排名

SELECT score,  ROW_NUMBER() OVER(ORDER BY score ASC) as "rank"  FROM t_scores;

查询结果:
xxxxx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1120477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图详解第六篇:多源最短路径--Floyd-Warshall算法(完结篇)

文章目录 多源最短路径--Floyd-Warshall算法1. 算法思想2. dist数组和pPath数组的变化3. 代码实现4. 测试观察5. 源码 前面的两篇文章我们学习了两个求解单源最短路径的算法——Dijkstra算法和Bellman-Ford算法 这两个算法都是用来求解图的单源最短路径的算法,区别在…

effective c++学习笔记(后四章)

六 继承与面向对象设计 红色字 \color{FF0000}{红色字} 红色字 32 确定你的public继承塑模出 is-a关系 如果你令class D (“Derived”)以public形式继承class B (“Base”),你便是告诉C编译器(以及你的代码读者)说,每一个类型为…

基于目录的ant任务

一些任务利用目录树来执行一些动作 一些任务利用目录树来执行一些动作。例如,javac这个任务就是一个基于目录的任务,它将一个目录中的.java文件编译为.class文件。因为一些这样的任务在目录树上做很多的工作,所以这些任务本身充当了隐含的文…

C# Socket通信从入门到精通(2)——多个同步TCP客户端C#代码实现

前言: 我们在开发Tcp客户端程序的时候,有时候在同一个软件上我们要连接多个服务器,这时候我们开发的一个客户端就不够使用了,这时候就需要我们开发出来的软件要支持连接多个服务器,最好是数量没有限制,这样我们就能应对任意数量的服务器连接,由于我们开发的Tcp客户端程…

7个可能改变AEC行业的AI工具

推荐:用 NSDT编辑器 快速搭建可编程3D场景 人工智能(AI)工具在各个行业中越来越受欢迎,ChatGDP的推出无疑让人们看到了人工智能所能提供的可能性。 然而,人工智能不仅仅是生成文本或图形——它可以用于各种设置。 建筑…

【面试题】JDBC桥接模式如何实现的?

Hello 大家好,我是小米!很高兴又和大家见面啦!今天的主题是——"面试题:JDBC桥接模式如何实现的?"。 相信大家都听说过JDBC(Java Database Connectivity),它是Java中连接…

QT判断平台和生成版本设置输入目录

QT判断平台和生成版本设置输入目录 pro工程文件中常用的宏定义Chapter1 QT判断平台和生成版本设置输入目录Chapter2 Qt pro文件中判断 x86/arm(aarch64)交叉编译环境,区分 linux/windows系统, debug/release版本Chapter3 Qt的版本判断、跨平台选择与pro工程文件输出…

231022|redis_demo

安装 https://github.com/tporadowski/redis https://github.com/redis/redis-py/ 解压后要先配置redis.windows.conf文件,里面有本地端口和密码设置 默认host:127.0.0.1 port:6379 打开命令行到redis文件夹下,redis-server.exe redis.windows.conf输入即…

1024我来利用DOS攻击你的电脑了?(第十三课)

1024我来利用DOS攻击你的电脑了?(第十三课) 本文章设计安全领域的重点问题 学习本文章时 请扎在初学者的角度学习 用于正途 一 国家安全法 1 安全法律法规 《宪法》中的相关规定 案例: 大山破解同事小美私人邮箱密码,读取其往来邮件 邮箱…

Go并发编程之四

一、前言 今天我们介绍一下Go并发编程另外一个重要概念【多路复用】,多路复用最开始是在网络通讯领域(硬件)应用,指的是用同一条线路承载多路信号进行通信的方式,有频分多路复用、时分多路复用等等技术,然…

组合数(递推版)的初始化

初始考虑为将第一列数和斜对角线上的数进行初始化。 橙色方块由两个绿色方块相加而来,一个为1,一个为0,所以斜对角线都为1,可以通过计算得来,不需要初始化,需要与码蹄集盒子与球 第二类Stirling数&#xf…

【Linux】命令行参数和环境变量

命令行参数 其实main函数是可以传参数的,也叫做命令行参数。我们这里先介绍main函数的前两个参数 argc代表的是指针数组的元素个数,argv是一个指针数组,指针指向字符串。argv不可能为空,argv【0】存储该进程的名字 例如 ls -a -…

【数据结构】830+848真题易错题汇总(10-23)

【数据结构】830848易错题汇总(10-23) 文章目录 【数据结构】830848易错题汇总(10-23)选择题填空题判断题简答题:应用题:算法填空题:算法设计题:(待补) 选择题 1、顺序栈 S 的 Pop(S, e)操作弹出元素 e,则下列(C )是正…

在 Python 中使用 Pillow 进行图像处理【2/4】

第二部分 一、说明 该文是《在 Python 中使用 Pillow 进行图像处理》的第二部分,主要介绍pil库进行一般性处理:如:图像卷积、钝化、锐化、阈值分割。 二、在 Python 中使用 Pillow 进行图像处理 您已经学习了如何裁剪和旋转图像、调整图像大…

Yakit工具篇:专项漏洞检测的配置和使用

简介(来自官方文档) 专项漏洞检测是针对特定应用程序或系统进行的安全漏洞扫描技术,旨在检测与该应用程序或系统相关的安全漏洞。 Yakit通过对常见的中间件、CMS、框架、组件进行总结、归纳,并针对这些组件对其常见的高危漏洞进…

027-第三代软件开发_ComboBox

第三代软件开发_ComboBox 文章目录 第三代软件开发_ComboBox项目介绍ComboBox实际使用 关键字: Qt、 Qml、 ComboBox、 delegate、 Connections 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object Language&…

试题一 (软件设计师笔记)(15分)

😀前言 现在就是总复习试题一 🏠个人主页:尘觉主页 🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉 在csdn获奖荣誉: 🏆csd…

记录打包部署Springboot项目到Windows环境

Springboot项目开发完成后要做的工作就是部署了,这里记录下打包部署的过程。这个项目是一个SpringBoot多模块项目,包含了一个父工程,一个子模块和一个工具模块。其中子模块里有启动类,而工具模块没有。因此这三者的pom文件不一样。…

SOME/IP, DDS 还是 MQTT

如今,用户希望将他们的汽车根据个人偏好进行定制,通过添加功能并定期进行更新,就像他们对待移动设备一样。实现这些期望属性的一个构建模块是基于 Internet Protocol(IP)的通信;IP为新的设计模式打开了大门…