2024年4月24日
可以将问题拆分成两个子问题,一是对分数进行排序,二是根据分数进行排名
- 排序
通过ORDER BY col_name ASC/DESC
实现对指定字段进行升序或降序排列
- 排名
涉及到排名可以使用窗口函数,常见的窗口函数有rank()
、dense_rank()
、row_number()
select *,
rank() over (order by 成绩 desc) as ranking,
dense_rank() over (order by 成绩 desc) as dese_rank,
row_number() over (order by 成绩 desc) as row_num
from 班级
得到结果:
由图可知,rank()
同分占用后续排名,dense_rank()
同分不占用后续排名,row_number()
根据行数进行排名