RANK 与 DENSE_RANK 的区别

SQL窗口函数中的排名机制详解

什么是 RANK 和 DENSE_RANK?

在 SQL 中,RANK()DENSE_RANK() 都是窗口函数(Window Functions),用于对查询结果进行排名。 它们常用于处理需要排序并分配名次的场景,如学生成绩排名、销售排行榜等。

核心区别

示例数据

假设有如下成绩表:

+----+--------+-------+
| id | name   | score |
+----+--------+-------+
| 1  | Alice  | 95    |
| 2  | Bob    | 90    |
| 3  | Carol  | 95    |
| 4  | David  | 85    |
+----+--------+-------+

使用 RANK()

SELECT name, score,
       RANK() OVER (ORDER BY score DESC) AS rank_num
FROM scores;

结果:

+--------+-------+----------+
| name   | score | rank_num |
+--------+-------+----------+
| Alice  | 95    | 1        |
| Carol  | 95    | 1        |
| Bob    | 90    | 3        |
| David  | 85    | 4        |
+--------+-------+----------+

使用 DENSE_RANK()

SELECT name, score,
       DENSE_RANK() OVER (ORDER BY score DESC) AS dense_rank_num
FROM scores;

结果:

+--------+-------+----------------+
| name   | score | dense_rank_num |
+--------+-------+----------------+
| Alice  | 95    | 1              |
| Carol  | 95    | 1              |
| Bob    | 90    | 2              |
| David  | 85    | 3              |
+--------+-------+----------------+

如何选择?

- 如果你需要“跳过名次”的传统竞赛式排名(如奥运奖牌榜),使用 RANK()
- 如果你希望名次连续、不跳过(如产品星级评分排名),使用 DENSE_RANK()

speedcn官网版-高效、简洁的网络加速平台 豆包与DeepSeek有什么区别?全面对比分析 豆包AI和DeepSeek哪个好用?全面对比评测-78铁皮 speak网络用语详解|网络流行语专题 DeepSeek教师版官网-专为教育打造的AI助手 DeepSeek官网中文版-智能AI大模型平台 DeepShake下载-官方安装指南与资源 PCIe好还是SSD好?稳定性对比分析-78铁皮 网速测速在线Speedtest-快速免费测试您的网络速度 DeepSeek能干什么用?功能详解与应用场景 使用 DeepSeek 制作 PPT:高效智能的演示文稿生成指南 sed -i -e 命令详解:Linux 文本替换利器 Kubernetes + Docker + DevOps 实践指南|一站式云原生开发专题 Docker Compose 启动指南-快速上手与最佳实践 Speed Up 翻译:提升翻译效率的技巧与工具指南 Speedtest测网速官网-在线网络速度测试工具 面试题:怎样看待 DeepSeek 爆火?-AI技术观察 DeepSeek PPT生成-智能AI一键生成专业演示文稿 Speedtest下载官方-快速安全获取最新版Speedtest测速工具 比DeepSeek更强的软件Manus-智能搜索与内容生成新标杆 DeepSeek生成的链接下载不了?原因与解决方法 Serratiopeptidase( serrapeptase)专题:作用、用途与研究进展 Serendipity-Discover the Meaning and Origin of This Beautiful English Name DeepSeek可以生成数字人吗?全面解析AI数字人能力 DeepSeek 与 豆包(Doubao)的区别详解|AI大模型对比专题 SpeedTest5G测速下载-快速、准确的5G网络测速工具 SpeedTest5G-5G网络测速工具与技术指南 DeepSeek教师版安装包下载-官方指南与技术支持 DeepSeek华为版下载-官方安全渠道与使用指南 DeepSeek官网注册指南-快速注册使用AI大模型 DeepFeke下载-安全可靠的AI工具下载中心 docker-compose up -d 配置详解|快速上手指南 DeepSeek是干嘛的?一文读懂DeepSeek的功能与用途 DeepSeek能修复照片吗?功能解析与使用指南 昆明DeepSeek培训-掌握前沿AI技术从这里开始 个人使用 DeepSeek 收费吗?全面解答与使用指南 Deepfake下载免费版-安全使用指南与资源推荐 stopped 怎么读?英文发音、音标与用法详解 DeepSleep为什么登不进去?常见原因与解决方法 DeepSeek收了59元?用户反馈与使用说明 DeepSeek怎样上传图片-使用指南与操作说明 为什么 DeepSeek 生成的图片打不开?原因与解决方法 sed命令英语翻译与详解-Linux文本处理利器 豆包AI和DeepSeek有什么区别?全面对比分析 DeepSeek免费版下载-官方使用指南与技术解析 如何用 DeepSeek 修复老照片-老照片智能修复指南 Deepfake 软件下载指南-安全合法使用 AI 换脸工具 TopSpeed路由器官网-高速稳定,智能连接每一刻 docker-compose up 使用指南与最佳实践 DeepSeek链接打不开?常见原因与解决方法-78铁皮 Speedtest 网络测速工具使用指南-快速检测您的网速 怎么用 DeepSeek 做 PPT-快速上手指南 DeepSeek怎么收费?2025最新收费标准与免费政策详解 Speed Up 是什么意思?全面解析与使用指南 使用DeepSeek收费吗?免费与付费功能详解-78铁皮 DeepSleep为什么登不上去?常见原因与解决方法 DeepSeek生成卷子步骤详解|快速创建高质量试卷 Docker Compose 部署指南-快速上手与最佳实践 DeepSeek里面的示例怎么打开-使用指南与常见问题 Deep Work Rules-深度工作法则指南|提升专注力与生产力 DeepSeek是免费的还是收费的?全面解析使用费用 K-Pop Deepfake 图片专题|技术、伦理与趋势解析 DeepSeek最强版本是哪个?全面对比与解析 DeepSeek提问三要素-提升AI问答效率的关键技巧 DeepSeek生成图片教程-使用代码创建图像的完整指南 docker-compose up -d 使用详解|Docker Compose 启动指南 SpeedItUp-极速优化工具专题页 DeepSeek百度版代码在哪打开-使用指南与常见问题 “deep”网络用语详解-含义、用法与流行背景 Speedtest安卓怎么下-安卓版Speedtest下载与使用指南 speek 与 speak:发音、拼写与用法详解 DeepSeek在线提问-快速体验智能问答 Deepfake合成明星:技术、伦理与未来展望 Moved Us Deeply — 触动心灵的故事与瞬间 Serrapeptidase的作用-溶解蛋白酶的健康益处与应用 DeepSeek修复老照片-智能AI老照片修复工具指南 DeepSeek不支持图片?原因与解决方案详解 sed 命令详解-强大的流编辑器使用指南 翻译 Speed-快速、准确的多语言翻译解决方案 DeepSeek生成的代码如何使用-使用指南与技巧 DeepSeek 和 豆包 哪个更强大?全面对比分析 DeepSeek能还原照片吗?功能解析与使用指南 DeepSeek为啥这么火?深度解析其爆红原因 DeepSeek 安装指南-快速上手与本地部署教程 DeepSeek如何注册账号-新手入门指南 Speedtest官方中文版下载-快速测速工具官方下载入口 DenseNet 深度解析:原理、优势与应用|78铁皮 Docker 与 Kubernetes(K8s)技术专题-容器化开发与编排指南 DeepSeek有哪些用途-功能与应用场景详解 Desktop 翻译工具专题-高效本地化翻译解决方案 DeepSeek-R1 官方下载-最新版本免费获取 DeepSeek可以生成图片吗?功能详解与使用指南 豆包和DeepSeek哪个写材料更聪明?AI写作能力对比专题 Speedtest绿色版-轻量无广告网络测速工具 SpacesDesk官网-智能办公空间管理平台 DeepSeek为啥会火?深度解析其爆红原因|78铁皮 DeepSeek如何制作PPT课件-实用指南与技巧 下载 DeepSeek-官方使用指南与技术解析 测速 Speedtest-网络速度测试工具专题页 DeepSeek教师专用版-智能教学助手,赋能教育创新