当前位置: 首页 > news >正文

ROW_NUMBER(), RANK(), DENSE_RANK() SQL排序函数图文详解

ROW_NUMBER(), RANK(), DENSE_RANK()

在这里插入图片描述

  1. ROW_NUMBER(): 为结果集中的每一行分配唯一的连续编号。即使有重复的值,ROW_NUMBER() 也会为它们分配不同的序号。

    SELECT column_name, ROW_NUMBER() OVER (ORDER BY column_name) AS row_num
    FROM table_name;
    

在这里插入图片描述
2. RANK(): 对结果集中的行进行排名。相同的值会得到相同的排名,但排名后会跳过相应的序号。例如,1、1、3,而不是1、1、2。

SELECT column_name, RANK() OVER (ORDER BY column_name) AS rank
FROM table_name;

在这里插入图片描述
3. DENSE_RANK(): 类似于 RANK(),但不会跳过排名。相同的值会得到相同的排名,接下来的排名不会有空缺。例如,1、1、2。

SELECT column_name, DENSE_RANK() OVER (ORDER BY column_name) AS dense_rank
FROM table_name;

在这里插入图片描述


IDScore
195
280
395
485
580
SELECT ID, Score,ROW_NUMBER() OVER (ORDER BY Score DESC) AS RowNumber,RANK() OVER (ORDER BY Score DESC) AS Rank,DENSE_RANK() OVER (ORDER BY Score DESC) AS DenseRank
FROM Scores;

结果:

IDScoreRowNumberRankDenseRank
195111
395211
485332
280453
580553
  • ROW_NUMBER() 分配唯一的连续编号。
  • RANK() 对相同的分数分配相同的排名,并跳过接下来的排名位置。
  • DENSE_RANK() 对相同的分数分配相同的排名,不跳过排名位置。
http://www.lryc.cn/news/427661.html

相关文章:

  • Spring IoCDI(下)—DI的尾声
  • 仕考网:考外省公务员可以调回本地吗?
  • 《工厂模式在软件开发中的深度剖析与应用》
  • 双向通信之Websocket
  • git学习使用碰到的问题1
  • JavaScript初级——Math
  • ffmpeg的基础命令
  • 二建机电工程实务试题内附答案
  • Redis的热key以及Big(大)key是什么?如何解决Redis的热key以及Big(大)key问题?
  • django学习入门系列之第九点《MySQL命令介绍一》
  • Mysql面试一
  • 模型优化之剪枝
  • JVM的组成
  • 快速上手 iOS Protocol Buffer
  • 每天一个数据分析题(四百八十)- 线性回归建模
  • 电动汽车和混动汽车DC-DC转换器的创新设计与测试方法
  • OriginPro快速上手指南:数据可视化与分析的利器
  • 缓存学习
  • 亚世光电:消费电子年度表演
  • AI 工程应用 建筑表面检测及修复
  • Qt-Qt中的小事项(7)
  • Android MediaRecorder 视频录制及报错解决
  • HarmonyOS应用程序访问控制探究
  • 董卫民赴考拉悠然等企业调研,强调加快发展人工智能产业
  • MFC将类A中的事件在类B中处理采用回调函数实现
  • 公众号 微信登录
  • sanic + webSocket:股票实时行情推送服务实现
  • Unity动态给按钮各个状态下的图片赋值
  • xiaomi pad 6PRO 小米平板6 pro hyperOS降级 澎湃os 降级MIUI 14 教程 免解锁BL 降级,168小时解锁绑定
  • MySQL 备份一个表