select a.grade from (select grade, sum(number) over(order by grade) t_rank, sum(number) over(order by grade desc) t_rank_desc, (select sum(number) from class_grade) total from class_grade) a where a.t_rank>=a.total/2 and a.t_rank_desc>=a.total/2 order by a.grade
https://blog.nowcoder.net/n/caaa953ea61049fdab7cd6a303a6e8ad?f=comment