常规写法

select grade from 
(select grade,
sum(number) over(order by grade)-number+1 lower,
sum(number) over(order by grade) upper
from class_grade)a
where floor(((select sum(number) from class_grade)+1)/2) between lower and upper
or floor(((select sum(number) from class_grade)+2)/2) between lower and upper