mysql 排名与排序

news2024/11/19 13:34:04

MySQL 8.0 版本新增 两个排名函数

分别是 ROW_NUMBER() 与 RANK()  

用法 

SELECT ROW_NUMBER() OVER(ORDER BY id) AS rowNo, name FROM users;
SELECT RANK() OVER(ORDER BY score DESC) AS rankNo, name, score FROM students;

后面跟 OVER()括号里面跟查询条件,可以写多个条件 比如

 OVER(ORDER BY score DESC,date ASC)

 OVER()里面的条件是在 where 条件之后运行的

先分别运行结果

这里我用mysql自带的员工表进行演示

条件都是按照 员工的生日进行降序排列

SELECT ROW_NUMBER()OVER(ORDER BY birth_date DESC) as rankNo,emp_no,birth_date FROM employees LIMIT 15;

 

看结果说明 ROW_NUMBER() 为查询结果中的每一行分配一个唯一的数字

 条件 birth_data 都是 1965-02-01 返回的rankNo不一样

SELECT RANK()OVER(ORDER BY birth_date DESC) as rankNo,emp_no,birth_date FROM employees LIMIT 15;

RANK() 为查询结果中的每一行分配一个排名  

 条件 birth_data 都是 1965-02-01 返回的rankNo 一样 (类似于同分都是第一名)

RANK() 函数 条件再加上一个 emp_no 查询看看结果

SELECT RANK()OVER(ORDER BY birth_date DESC,emp_no ASC) as rankNo,emp_no,birth_date FROM employees LIMIT 15;

RANK() 为查询结果中的每一行分配一个排名  

 条件 birth_data 都是 1965-02-01 但是 还有一个条件 emp_no 

返回的rankNo 就不一样了 (因为没有出现 既birth_data一样而且emp_no一样的数据,类似于虽然同分 但是谁先到达这个分数谁就是第一名)

所以一般排名就是要rank()函数

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

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

相关文章

惠普星 TP01-055ccn电脑重装系统步骤

如果你的惠普星 TP01-055ccn电脑出现了系统问题,或者你想更换一个全新的微软操作系统,自己有不清楚相关的重装系统步骤怎么办?别担心,你可以参考以下的惠普星 TP01-055ccn电脑重装系统步骤来执行。 ​ 惠普星 TP01-055ccn电脑怎…

第1章 .Net7 Areas实现

1 集成路由匹配模式 var builder WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllersWithViews(); var app builder.Build(); // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { …

【LeetCode】376. 摆动序列

376. 摆动序列 思路 首先,我们可以将摆动序列分为两种: 「上升摆动序列」,当且仅当该序列是摆动序列,且最后一个元素呈上升趋势。如序列 [1,3,2,4] 即为「上升摆动序列」。 「下降摆动序列」,当且仅当该序列是摆动序…

深度解读:《数字孪生世界白皮书(2023)》全方位剖析

2023年初,中国信息通信研究院发布了《数字孪生城市产业图谱研究报告(2022)》,报告中提出我国数字孪生产业四阶段体系,2020年到2030年是我国数字孪生产业增长期,当前数字孪生市场需求和技术均处于高速发展阶…

腹部肿瘤内科专家朱利明:化疗也能“订制”,晚期结直肠癌不再“无药可救”

肠癌是发生在结肠和直肠的癌症,近二三十年来发病率快速上升。就在近期,“日本女大胃王菅原初代患肠癌病逝”的消息登上热搜,一时引发网友关注热议。 “人生有哲学三问:我是谁?我从哪里来?我到哪里去&#x…

window下sql-server备份后,拷贝到centos上

一.window下sql-server management 打开本地数据库,点备份 二.拷贝到centos下对应目录 mkdir -p /var/opt/mssql/backup 三.在 Linux 上还原数据库 下列步骤使用 sqlcmd 工具。 如果尚未安装 SQL Server 工具,请按照以下步骤安装: ●(1)用…

DJ5-3/4 中断处理程序和设备驱动程序

目录 5.3 中断机构和中断处理程序 5.3.1 中断简介 5.3.2 中断处理程序 5.4 设备驱动程序 5.4.1 设备驱动程序概述 5.4.2 设备驱动程序的处理过程 5.4.3 对 I/O 设备的控制方式 5.3 中断机构和中断处理程序 5.3.1 中断简介 1、中断和陷入 -- CPU 外部事件和内…

基于C++的通讯管理系统

1、系统需求 通讯录是一个可以记录亲人、好友信息的工具。本教程主要利用C来实现-个通讯录管理系统 系统中需要实现的功能如下: ●添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人 ●显示联系人:显示通讯录中所有联系…

手把手教你搭建ROS阿克曼转向小车之(增量式PID代码实现)

在上一篇文章中我们已经成功的把编码器的反馈值给计算出来,这篇文章将会讲解怎么使用反馈回来的速度值进行PID计算,从而闭环控制电机的速度。 PID算法介绍 1.开环控制系统 开环控制系统(open-loop control system)是指被控对象的输出(被控制量)对控制器…

【软件开发】从单机到分布式

从单机到分布式 1.单台服务器应用 问题:由于流量越来越大出现服务器性能问题。 2.应用服务器和数据库服务器分离 对架构增加了一台服务器,应用和数据库分别部署到不同的服务器上,对于开发和测试没有任何影响,只需要应用服务器新…

画了个 MSP430F149的最小系统板 开源出来了

使用MSP430F149单片机设计的一个最小系统板,包含晶振电路、复位电路、CH340串口和BSL下载电路、按键和LED电路等,使用了Type-C接口作为供电和串口通信,另外引出了JTAG接口,所有IO口都引出了。 板载了3个按键和LED,可以…

项目范围说明书如何编写?

范围说明书是一份定义了项目范围的所有要素以及假设、项目要求和验收标准的文件。项目范围说明书将作为主要工具,供利益相关者和团队成员参考,并作为准确衡量项目成功的准则。 项目范围说明书是范围管理计划的一部分,包含了管理项目范围的所…

百度智能云联合发布《雄安新区2022年大数据研究报告》

近日,百度智能云、百度研究院商业智能实验室联合发布《未来之城 雄姿初显——雄安新区2022年大数据研究报告》(以下简称《报告》),运用人工智能和大数据分析技术,全面呈现过去一年雄安新区在承接疏解、生态治理、城市建…

Golang当中的定时器

定时器 前言定时器的基本使用 前言 在平时写代码的时候,我们经常会遇到在将来某个时间点或者间隔一段时间重复执行函数。这个时候我们就可以考虑使用定时器。本片文章主要介绍一下golang当中的几个常用的定时器。time.Timer,time.Ticker,time.After以及time.AfterF…

文鼎创智能物联云原生容器化平台实践

作者:sekfung,深圳市文鼎创数据科技有限公司研发工程师,负责公司物联网终端平台的开发,稳定性建设,容器化上云工作,擅长使用 GO、Java 开发分布式系统,持续关注分布式,云原生等前沿技…

《安富莱嵌入式周报》第311期:300V可调节全隔离USB PD电源,开源交流负载分析仪,CANFD Trace,6位半多斜率精密ADC设计,开源数学库

周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: https://www.bilibili.com/video/BV1Hh4y1H7dR 《安富莱嵌入式周报》第311期:300V可调…

【机器学习】决策树算法解读

【机器学习】决策树算法解读 文章目录 【机器学习】决策树算法解读1. 介绍1.1 优缺点1.2 结构1.3 学习过程1.4 决策树与条件概率分布 2. 决策树学习过程2.1 训练策略2.2 特征选择2.2.1 信息增益和条件熵 2.3 决策树的生成2.3.1 ID32.3.2 C4.52.3.3 CART2.3.4 小结 2.4 决策树的…

Nacos配置中心、配置热更新、及配置共享的记录

Nacos除了提供了注册中心的功能,同样也提供了配置中心的功能,用于管理一些叫常改动的配置 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案,可以集中…

计算时间复杂度详解

1,前置知识 我们在计算时间复杂度之前的前置知识是等差数列的通项公式和求和公式以及等比数 列的通项公式和求和公式 等差数列: 通项公式:ana1(n-1)d(d是公差) 求和公式:Snn(a1an)/2 等比数列&#xf…

【Python入门知识】NumPy数组拆分,超详细讲解

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 今天我们来学习python中NumPy数组的拆分 拆分 NumPy 数组 拆分是连接的反向操作。 连接(Joining)是将多个数组合并为一个,拆分(Spliting)将一个数组拆分为多个。…