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

PERCENT_RANK 相对排名

相对排名 = (名次 - 1) / (总行数 - 1),取值 0 到 1;用于“排在前面百分之多少”。

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

示例

示例
SELECT name, score,
       ROUND(PERCENT_RANK() OVER (ORDER BY score DESC), 4) AS pr
FROM exams;
范围0 ~ 1
边界数值居首者 0,数值居末者 1(分区内)
对比CUME_DIST 是“小于等于当前值的比例”,并列行为不同

易错点

  • 分区只有 1 行时 PERCENT_RANK 为 0,统计口径要单独说明
  • PERCENT_RANK 与 NTILE 不可互换:前者按值算排名比例,后者按行数分桶

数据来源与参考

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