LeetCode 178. 分数排名
程序员文章站
2023-11-25 17:38:58
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
上一篇: 详解Java8 新特性之日期API
下一篇: js控制按钮,防止频繁点击响应的实例
推荐阅读
-
2021年上海排名最低的学校有哪些?附2020年上海高考分数线排名对应大学
-
河南近几年高考分数线趋势:附近几年录取分数线及位次排名
-
2021湖南专科学校有哪些?附湖南所有专科学校分数线排名汇总2021最新整理
-
全国比较好的二本政法大学有哪些?附2020年政法类985大学排名(录取分数线及位次)
-
重庆十大大专排名(含分数线2021年参考)-重庆最好的全日制专科学校
-
985、211大学在江苏最低录取分数线及位次排名-附江苏省所有大学排名
-
各大学在江苏录取位次排名2020-各大学在江苏录取分数线2020
-
江苏最好考的大专学校有哪些?附江苏专科院校录取分数线排名2021参考
-
全国最好的师范专科大学排名及录取分数线(2021年参考)
-
教育类专科学校排名及分数线(2021年参考)