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