SQL排名问题
题目描述
https://leetcode-cn.com/problems/rank-scores/
使用基本语句
可以保证分数的排名是连续而非跳跃的
select s1.Score,count(distinct (s2.Score))as Rank
from Scores s1,Scores s2
where s1.Score<=s2.Score
group by s1.ID
order by Rank;
涉及到排名问题,使用窗口函数
https://blog.youkuaiyun.com/qq_41805514/article/details/81772182
一篇很赞的博客
区分常用的窗口函数
row_number()
rank()
dense_rank()
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 班级;
结果如下