首页/数据/SQL 速查/RANK 排名(并列跳号)
本包目录(311 条)
查询基础33 条连接与子查询40 条
聚合与窗口函数54 条
函数速查60 条变更与事务52 条性能与执行计划72 条

RANK 排名(并列跳号)

按排序值排名:并列名次相同,后续名次跳号(1,1,3…);取“前 N 名含并列”用 RANK 而不是 ROW_NUMBER。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT name, score,
       RANK()       OVER (ORDER BY score DESC) AS rnk,
       DENSE_RANK() OVER (ORDER BY score DESC) AS drnk
FROM exams;
并列同分值同名次
跳号1,1,3,4…
取前 NRANK() <= N 会包含并列行

易错点

  • ROW_NUMBER 取前 N 会漏掉并列名次,评奖评优场景用 RANK 更合适
  • RANK 的分区顺序由 ORDER BY 决定,多列排序要写完整

数据来源与参考

  • MySQL 8.0 Reference Manual · RANK
  • PostgreSQL Documentation · Window Functions
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌