with t1 as (
select floor(((select sum(number) from class_grade)+1)/2) as thr
union all
select ceil(((select sum(number) from class_grade)+1)/2)
), t2 as (
select grade, number, sum_
from (
select grade, number,
sum(number) over (order by grade) as sum_
from class_grade
) temp
)
select distinct grade
from (
select t1.thr, min(sum_) as flag
from t1 join t2 on t2.sum_>=t1.thr
group by t1.thr
) temp2 join t2 on temp2.flag=t2.sum_
order by grade

京公网安备 11010502036488号