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中的Facade(门面)到底是什么原理
高端云建站费用究竟需要多少预算?
使用豆包 AI 辅助进行简单网页 HTML 结构设计
文字头像制作网站推荐软件,醒图能自动配文字吗?
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
如何在企业微信快速生成手机电脑官网?
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
QQ浏览器网页版登录入口 个人中心在线进入
如何在宝塔面板中修改默认建站目录?
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
C#如何调用原生C++ COM对象详解
,网页ppt怎么弄成自己的ppt?
javascript中闭包概念与用法深入理解
Laravel定时任务怎么设置_Laravel Crontab调度器配置
高防服务器租用如何选择配置与防御等级?
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
如何在七牛云存储上搭建网站并设置自定义域名?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
EditPlus 正则表达式 实战(3)
Bootstrap CSS布局之列表
简历没回改:利用AI润色让你的文字更专业
如何在阿里云服务器自主搭建网站?
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
在线制作视频的网站有哪些,电脑如何制作视频短片?
LinuxShell函数封装方法_脚本复用设计思路【教程】
Laravel如何使用Sanctum进行API认证?(SPA实战)
UC浏览器如何设置启动页 UC浏览器启动页设置方法
如何快速搭建高效WAP手机网站吸引移动用户?
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
大连 网站制作,大连天途有线官网?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
EditPlus中的正则表达式实战(6)
zabbix利用python脚本发送报警邮件的方法
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
大学网站设计制作软件有哪些,如何将网站制作成自己app?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
大型企业网站制作流程,做网站需要注册公司吗?
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
Laravel如何使用Telescope进行调试?(安装和使用教程)
制作公司内部网站有哪些,内网如何建网站?
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
免费视频制作网站,更新又快又好的免费电影网站?
七夕网站制作视频,七夕大促活动怎么报名?
太平洋网站制作公司,网络用语太平洋是什么意思?

