根据分数排名,分数相同,名次相同,平分后的下一个名次应该是下一个连续的整数值
select s.score,ROUND(rank) as rank from Scores s,
(select score, @rank:=@rank + 1 as rank from
(select score from Scores group by score order by score desc) a, (select @rank:=0) b
) c
where s.score = c.score order by s.score desc
根据分数排名,分数相同,名次相同,平分后的下一个名次应该是跳跃整数值
select s.score,d.Rank from Scores s,
(select score,min(Rank) as Rank from
(
select score, @Rank :=@Rank + 1 as Rank from
(select score from Scores order by score desc) a, (select @Rank :=0) b
) c
group by c.score
) d
where s.score = d.score order by s.score desc
SELECT s.Score as Score,(SELECT ROUND(k.Rank)) as Rank
FROM Scores as s
LEFT JOIN
(SELECT m.Score, (@row:=@row+1) AS Rank FROM
(SELECT @row:=0) as w,(SELECT DISTINCT Score FROM Scores ORDER BY Score DESC) as m
GROUP BY m.Score DESC) as k
ON k.Score = s.Score
ORDER BY Rank ASC;