1. 程式人生 > >mysql實現成績表中成績的排名

mysql實現成績表中成績的排名

有這樣的一個表:

如果兩個分數相同,則兩個分數排名(Rank)相同平分後的下一個名次應該是下一個連續的整數值。

因此,名次之間不應該有“間隔”!

此時有2種方法:

第一:

select grade, (select count(distinct grade) from class3 where grade>=s.grade) as Rank from class3 as s order by grade desc;

 

第二:

select grade,(select count(*) from (select distinct grade as s from class3) as new_scores where s >= grade) Rank from class3 order by grade desc;