LeetCode 178. 分数排名
程序员文章站
2022-06-04 20:20:43
1.题目描述 编写一个 SQL 查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。 例如,根据上述给定的 Scores 表,你的查询应该返回(按分数从高到低排列): 2.思路 以这个id为4的 ......
1.题目描述
编写一个 sql 查询来实现分数排名。如果两个分数相同,则两个分数排名(rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。
+----+-------+ | id | score | +----+-------+ | 1 | 3.50 | | 2 | 3.65 | | 3 | 4.00 | | 4 | 3.85 | | 5 | 4.00 | | 6 | 3.65 | +----+-------+
例如,根据上述给定的 scores
表,你的查询应该返回(按分数从高到低排列):
+-------+------+ | score | rank | +-------+------+ | 4.00 | 1 | | 4.00 | 1 | | 3.85 | 2 | | 3.65 | 3 | | 3.65 | 3 | | 3.50 | 4 | +-------+------+
2.思路
以这个id为4的举例,我们需要确定3.85排第几名,是不是只需要确定分数比3.85高的有几个人,那么就可以确定3.85排第几名。
比如说 比3.85 高的有id为3的和id为5,但他们同为4分,所以我们得根据成绩去重!
3.代码
select score,(select count(distinct score) from scores s where s.score>s1.score)+1 rank
from scores as s1 order by s1.score desc
上一篇: 粉蒸肉可以放不锈钢盆里蒸吗
下一篇: 荷兰豆沸水煮多久能熟?品尝它的美味。
推荐阅读
-
2021年全国医药类大学排名及分数线:医学十大名校是哪十所高校?
-
各大学理科录取分数线排名-理科大学排行榜及录取分数线2022参考
-
2020年985和211最低分数线及位次排名最新一览表(四川、湖北、安徽多省)
-
全国二本大学在四川投档线最低分数及位次排名一览表(2021年参考)
-
985高校在四川投档线及省排名-附2020年文理科录取分数线是多少?
-
江西所有二本大学排名及录取分数线2021最新名单(2022年文科参考)
-
河南所有二本大学排名及录取分数线2021最新名单(2022年文科参考)
-
2021年安徽省排名多少能上北京大学?附学校近三年录取分数线
-
2021年安徽省排名多少能上清华大学?附学校近三年录取分数线
-
2021年安徽省排名多少能上合肥工业大学?附学校近三年录取分数线