By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
create table Scores(id int, score int)
insert into Scores values(1, 350)
insert into Scores values(2, 365)
insert into Scores values(3, 400)
insert into Scores values(4, 385)
insert into Scores values(5, 400)
insert into Scores values(6, 365)
select s1.Score
, count(distinct(s2.score)) `Rank`
from Scores s1
join Scores s2 on s2.Score >= s1.score
group by s1.Score, s1.id
order by `Rank`;
Score | Rank |
---|---|
400 | 1 |
400 | 1 |
385 | 2 |
365 | 3 |
365 | 3 |
350 | 4 |
select a.Score as Score,
(select count(distinct b.Score) from Scores as b where b.Score>=a.score) as `Rank`
from Scores as a
order by a.Score desc;
Score | Rank |
---|---|
400 | 1 |
400 | 1 |
385 | 2 |
365 | 3 |
365 | 3 |
350 | 4 |