解法一 case when
select grade , case grade when 'A' then (select sum(number) from class_grade where grade <='A') when 'B' then (select sum(number) from class_grade where grade <='B') when 'C' then (select sum(number) from class_grade where grade <='C') else (select sum(number) from class_grade where grade <='D') end as t_rank from class_grade order by grade解法二 自连接
select a.grade,sum(b.number) as t_rank from class_grade as a join class_grade as b on a.grade>=b.grade group by a.grade order by a.grade;解法三 窗口函数sum() over()
select grade,sum(number) over(order by grade) as t_rnk from class_grade order by grade;