mysql 排名与排序

news/2024/11/23 16:59:12/

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.ppmy.cn/news/63663.html

相关文章

更懂业务的数智平台,应对数智化转型的“千变万化”

本文作者 跨界的申斯基 毫无疑问,随着数智化转型的加速,越来越多的企业正在把数智化战略提升到一个全新的高度,转型的进程也正从“浅层次”的数智化走向“深层次”数智化的阶段。 这也让企业的数智化转型进入到了一个全新的阶段,…

序列号及序列号生成器(号段模式,数据库模式)详细介绍(建议收藏)

前言 现如今,数据的唯一性和可追溯性变得越来越重要。从简单的数据库主键到复杂的分布式系统,唯一标识符在各种场景中都发挥着关键作用。序列号,作为一种广泛应用的唯一标识符,为我们提供了确保数据完整性和一致性的基础。在这个…

effective c++ 43-处理模板化基类的名称 笔记

effective c 43-处理模板化基类的名称 该节主要分析了一个写模板时常常会遇到的一个编译错误。 分析 这里有一个模板基类,有派生类继承了模板基类,并调用了基类中的方法,但是编译器却会报找不该方法,这是怎么回事? …

大语言模型未来趋势以及行业内名字解释

文章目录 名词解释1.大模型的趋势2.大模型的关键技术3. 大模型的应用在不断地应用 名词解释 AIGC:AI生成式内容LLM:大语言模型AGI:通用式生成模型,更高的认知能力的智能系统GPT(Generative Pre-trained Transformer)生成式预训练模型生成式A(I GenerativeArtificialIntelligen…

NEFU-2023-JAVA实验六

题目 分析设计 模拟向货船上装载集装箱。 每个集装箱必须包含ID号以及重量。货船必须包含ID号,名称,以及能承载的总重量,可以包含承载多个集装箱。装载业务逻辑类以及业务逻辑方法,传入指定货船,以及预装载的多个集装箱…

自定义组件中如何注入Spring底层的组件

1.概述 自定义的组件要想使用Spring容器底层的一些组件,比如ApplicationContext(IOC容器)、底层的BeanFactory等等,那么只需要让自定义组件实现XxxAware接口即可。此时,Spring在创建对象的时候,会调用XxxA…

Netty基础(二)

1.Netty高性能架构设计 1.1.线程模型基本介绍 1>.不同的线程模式,对程序的性能有很大影响,为了搞清Netty线程模式,我们来系统的讲解下各个线程模式,最后看看Netty线程模型有什么优越性; 2>.目前存在的线程模型有: ①.传统阻塞I/O服务模型; ②.Reactor(反应器)模式; 3…

Android 套壳本地html 生成apk

参考了:https://www.jianshu.com/p/ebf7948f3796 首页是前端会给到你html文件 目录基本上是这样的 image.png 步骤1: 创建assets目录 用户安卓studio 新合建工程就不写了 ,下面的图是如何创建assets资源目录: image.png image.png 步骤2:拷贝…