不讲别的,直接看结果
select
score,
row_number() over (order by score desc) as `row_number`,
rank() over (order by score desc) as `rank`,
dense_rank() over (order by score desc) as `dense_rank`
from
(
select 100 as score union all
select 95 as score union all
select 95 as score union all
select 90 as score
) t;
+--------+-------------+-------+-------------+
| score | row_number | rank | dense_rank |
+--------+-------------+-------+-------------+
| 100 | 1 | 1 | 1 |
| 95 | 2 | 2 | 2 |
| 95 | 3 | 2 | 2 |
| 90 | 4 | 4 | 3 |
+--------+-------------+-------+-------------+