窗口函数排名

99 阅读1分钟

2024年4月24日

178. 分数排名 - 力扣(LeetCode)

可以将问题拆分成两个子问题,一是对分数进行排序,二是根据分数进行排名

  • 排序

通过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 班级

得到结果: image.png 由图可知,rank()同分占用后续排名,dense_rank()同分不占用后续排名,row_number()根据行数进行排名