首页 » 技术分享 » 【LeetCode】178.分数排名

【LeetCode】178.分数排名

 

178.分数排名

编写一个 SQL查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有间隔


用到的表和数据SQL:

Create table If Not Exists Scores (Id int,Score DECIMAL(3,2));
Truncate table Scores;
insert into Scores (Id, Score) values ('1','3.5');
insert into Scores (Id, Score) values ('2','3.65');
insert into Scores (Id, Score) values ('3','4.0');
insert into Scores (Id, Score) values ('4','3.85');
insert into Scores (Id, Score) values ('5','4.0');
insert into Scores (Id, Score) values ('6','3.65');

答案:

此题的思路是对于每一个分数,找出表中有多少个大于或等于该分数的不同的分数,然后按降序排列即可。

select Score,
(select count(distinct Score) from Scoreswhere Score >=s.Score) Rank
from Scores s order by Score DESC;

写的比较粗糙,有不理解的可以扫描二维码加QQ群找我解答。


转载自原文链接, 如需删除请联系管理员。

原文链接:【LeetCode】178.分数排名,转载请注明来源!

0