select grade from (select grade,(select sum(number) from class_grade) as total, sum(number) over(order by grade) a, sum(number) over(order by grade desc) b from class_grade) t1 where a >= total/2 and b >=total/2 order by grade;
没想出来,核心思路是通过正序和逆序的累计分布交叉定位中位数区间