1、题目描述
来源:力扣(LeetCode)
2、解题思路
思路一
1# 将Score降序排列
2# 使用子查询,两表联查,count计算出小于等于当前Score的数量,作为排名
思路二
1# 将Score降序排列
2# 采用变量@j记录上次Score,与当前Score比较(等于为0,不等于为1),然后@i累加作为排名
@i:=@i+(@j<>(@j:=Score)
3、提交记录
思路一
select Score,(select count(distinct Score) from Scores s1 where s.Score<=s1.Score)as Rank
from Scores s
order by Score desc
思路二
select Score,@i:=@i+(@j<>(@j:=Score))as Rank
from Scores,(select @i:=0,@j:=-1)init
order by Score desc;