select grade
from 
(
    select
    grade
    ,(select sum(number) from class_grade) total
    ,sum(number) over(order by grade desc) rank1
    ,sum(number) over(order by grade) rank2
    from class_grade
) t
where rank1>=total/2 and rank2>=total/2
order by grade

思路:这里求中位数,利用了中位数是一定大于等于总数一半的。所以我们这里正序逆序对总number建立子查询,然后利用条件求出来。