任务描述
本关任务:编写SQL
查询来实现二种排名方式的分数排名。
score
表结构信息如下:
Id | Score |
---|---|
1 | 3.52 |
2 | 3.65 |
3 | 4.23 |
4 | 3.85 |
5 | 4.23 |
6 | 3.65 |
如果两个分数相同,则两个分数排名(Rank
)相同。
情况一:平分后的下一个名次是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。例:1、1、2、3、4、4。
情况二:排名是非连续的。例:1、1、1、4、4、6。
相关知识
略
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End
区域内进行代码补充。
测试说明
补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。
SELECT Score,(SELECT count(distinct score) FROM score as s2 WHERE s1.score < s2.score) + 1 AS Rank
FROM score
AS s1
ORDER BY RANK;
SELECT Score,(SELECT count(*) FROM score as s2 WHERE s1.score < s2.score) + 1 AS Rank
FROM score
AS s1
ORDER BY Rank ASC;