SQL ROW_NUMBER / RANK / DENSE_RANK 如何选择?
发布时间 - 2026-01-21 00:00:00 点击率:次应根据处理并列数据的需求选择:ROW_NUMBER严格排序、无并列;RANK并列跳号(如1、1、3);DENSE_RANK并列不跳号(如1、1、2)。
选哪个函数,关键看你要怎么处理并列数据。
ROW_NUMBER:严格排序,不给并列留位置
它不管值是否相同,只按顺序硬生生排 1、2、3、4……每个行都有唯一编号。适合需要“取前 N 条”或“分页时确保唯一顺序”的场景。
- 相同值会被强行拆开,比如两个 95 分,可能标成第 2 名和第 3 名
- 常用于分页(如查第 11–20 行)、去重(配合 PARTITION BY 取每组第一条)
- 语法简单:ROW_NUMBER() OVER (ORDER BY score DESC)

RANK:并列就跳号,强调名次感
值相等就同名次,但会跳过后续编号。比如两个并列第 1,下一个就是第 3 名。适合打分排名、竞赛名次这类“名次即荣誉”的场景。
- 95、95、90 → 排名是 1、1、3(中间跳了 2)
- 能清晰看出“有多少人比我强”,但总人数和最大名次可能对不上
- 语法:RANK() OVER (ORDER BY score DESC)
DENSE_RANK:并列不跳号,连续紧凑
值相等也同名次,但后续编号紧接上一个名次。比如两个并列第 1,下一个就是第 2 名。适合需要连续等级划分(如 A/B/C 档)或统计各档人数的场景。
- 95、95、90 → 排名是 1、1、2(没跳号)
- 名次数量最少,便于做分段统计(如“前 3 名”“前 5 档”)
- 语法:DENSE_RANK() OVER (ORDER BY score DESC)
记住一句话:要唯一序号用 ROW_NUMBER;要体现“并列即同名次且跳空位”用 RANK;要并列同名次但不跳空位,用 DENSE_RANK。
# sql
# 分页
# 跳空
# 都有
# 看你
# 这类
# 不给
# 硬生生
# 句话
# 跳了
# 第一条
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
如何在万网开始建站?分步指南解析
如何基于云服务器快速搭建个人网站?
如何在新浪SAE免费搭建个人博客?
Laravel安装步骤详细教程_Laravel环境搭建指南
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
简单实现Android验证码
Android Socket接口实现即时通讯实例代码
如何实现建站之星域名转发设置?
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
Python自动化办公教程_ExcelWordPDF批量处理案例
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
利用 Google AI 进行 YouTube 视频 SEO 描述优化
详解阿里云nginx服务器多站点的配置
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
5种Android数据存储方式汇总
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
lovemo网页版地址 lovemo官网手机登录
网站建设保证美观性,需要考虑的几点问题!
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
如何在建站之星绑定自定义域名?
Laravel怎么清理缓存_Laravel optimize clear命令详解
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
如何挑选高效建站主机与优质域名?
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
Python文件操作最佳实践_稳定性说明【指导】
*服务器网站为何频现安全漏洞?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
Laravel如何实现事件和监听器?(Event & Listener实战)
音响网站制作视频教程,隆霸音响官方网站?
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
JavaScript如何操作视频_媒体API怎么控制播放
如何快速搭建高效香港服务器网站?
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
微信小程序 闭包写法详细介绍
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
,南京靠谱的征婚网站?
如何用腾讯建站主机快速创建免费网站?
Laravel怎么实现验证码(Captcha)功能
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
网站页面设计需要考虑到这些问题
高性能网站服务器配置指南:安全稳定与高效建站核心方案
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
html如何与html链接_实现多个HTML页面互相链接【互相】
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
如何用好域名打造高点击率的自主建站?

