select grade, case when grade='A' then (select sum(a.number) from (select * from class_grade order by grade limit 1) a) when grade='B' then (select sum(a.number) from (select * from class_grade order by grade limit 2) a) when grade='C' then (select sum(a.number) from (select * from class_grade order by grade limit 3) a) when grade='D' then (select sum(a.number) from (select * from class_grade order by grade limit 4) a) when grade='E' then (select sum(a.number) from (select * from class_grade order by grade limit 5) a) end as t_rank from class_grade order by grade ;