MySQL-排名函数ROW_NUMBER(),RANK(),DENSE_RANK()函数的异同

embedded/2024/9/24 22:27:09/

MySQL-排名函数ROW_NUMBER(),RANK(),DENSE_RANK()函数的异同

前言

        假设有如下表结构与数据,class_id表示班级,需求:现在要按照班级分组,每个班级的学生进行年龄从小到大排序

一、ROW_NUMBER()函数

        ROW_NUMBER() 为每一行分配一个唯一的数字。对于每个分区(如果使用了分区),它都会从 1 开始编号,并且每个分区内的编号都是连续的。即:该方法的排名编号不会重复。

语法规则:

ROW_NUMBER() OVER ( [PARTITION BY partition_by_field, ...] ORDER BY sort_field [ASC | DESC], ... )

举例:

SELECT *, ROW_NUMBER() over ( PARTITION BY class_id ORDER BY age ASC ) AS r FROM USER

得到结果:

二、RANK()函数

        RANK() 根据指定的列对行进行排名,当遇到相同值时,会给出相同的排名序号,之后的行会跳过随后的排名号。例如,如果有两行具有相同的排名,则下一行将获得下一个更高的排名号,而不是连续的数字。即:分数一样则排名一样,后续的排名不连续

语法规则:

RANK() OVER ( [PARTITION BY partition_by_field, ...] ORDER BY sort_field [ASC | DESC], ... )

举例:

SELECT *, rank() over ( PARTITION BY class_id ORDER BY age ASC ) FROM USER

得到结果:

三、DENSE_RANK()函数

        DENSE_RANK() 也根据指定的列对行进行排名,但是它不会跳过任何排名号。如果有两个或更多行具有相同的值,则它们将获得相同的排名,而下一行紧接着是下一位。

语法规则:

DENSE_RANK() OVER ( [PARTITION BY partition_by_field, ...] ORDER BY sort_field [ASC | DESC], ... )

举例:

SELECT *, DENSE_RANK() over ( PARTITION BY class_id ORDER BY age ASC ) FROM USER

得到结果:


http://www.ppmy.cn/embedded/116297.html

相关文章

Haproxy搭建Web集群

目录 一、Haproxy 1.什么是Haproxy 2.Haproxy的特性 3.Haproxy负载均衡的策略(常见) 4.Haproxy、LVS、Nginx的区别 二、部署Haproxy 1.Haproxy服务器部署 1.1关闭防火墙以及增强功能 1.2编译安装 1.3配置Haproxy 1.4添加Haproxy服务 2…

RT_Thread内核源码分析(二)——链表和对象管理

实时操作系统基本上都是通过一些链表进行线程、信号、队列的管理,RT_Thread也不例外,本章主要讲解RT_Thread的链表结构和对象管理。 本章基于RT_Thread Nano V3.1.5版本分析 1、链表 RT_Thread使用的链表非常简单,链表节点只有节点指针&#…

【论文速看】DL最新进展20240924-增量语义分割、多任务分割检测、遥感目标检测

目录 【增量语义分割】【多任务】【人脸防伪】【遥感目标检测】 【增量语义分割】 AWF: Adaptive Weight Fusion for Enhanced Class Incremental Semantic Segmentation 论文链接:https://arxiv.org/pdf/2409.08516 代码链接:[无,但文中说会…

MYSQL基础篇

文章目录 一、函数二、约束三、多表查询四、事务总结 一、函数 substring索引值从1开始 datadiff是前一个日期减去后面一个日期 二、约束 check()括号里填条件 default后面加默认值eg:‘1’ 三、多表查询 给表起别名就不能直接通过表面来限定…

JVM 类加载机制

什么是类加载? 在JVA虚拟机实现规范中,通过ClassLoader类加载器把*.class字节码文件(文件流)加载到内存,并对字节码文件内容进行验证、准备、解析和初始化,最终形成可以被虚拟机直接使用的java.lang.Class对…

ER论文阅读-Incomplete Multimodality-Diffused Emotion Recognition

基本介绍:NeurIPS, 2024, CCF-A 原文链接:https://proceedings.neurips.cc/paper_files/paper/2023/file/372cb7805eaccb2b7eed641271a30eec-Paper-Conference.pdf Abstract 人类多模态情感识别(MER)旨在通过多种异质模态&#x…

【工具类】——图片缩放

在java中对于图片的处理一般都是使用Graphics2D类来实现。 Graphics2D 是 Java 2D API 的核心类,用于在 Java 平台上渲染二维形状、文本和图像。它是 Graphics 类的扩展,提供了更复杂的图形操作功能,包括几何变换、颜色管理、文本布局等。 用…

DAY20信息打点-红蓝队自动化项目资产侦察武器库部署企查产权网络空间

2.自动化-网络空间-AsamF 1.去GitHub上下载项目之后使用CMD打开 2.输入命令AsamF_windows_amd64.exe -v生成配置文件 3.AsamF会在~/.config/asamf/目录下生成config.json文件 C:\Users\Acer\.config\asamf 5.根据文档输入命令去查询所需信息(已经没有用了&#x…