不讲别的,直接看结果
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 |
+--------+-------------+-------+-------------+
此SQL查询演示了在得分数据上使用窗口函数row_number(),rank()和dense_rank()的效果。当分数相同的情况下,rank()和dense_rank()会给出相同的排名,而row_number()则会为每个得分分配独特的行号。
1868

被折叠的 条评论
为什么被折叠?



