select grade from(
select grade, case when floor((rk2 + 1) / 2) between rk0 and rk1 or ceil((rk2 + 1) / 2)
between rk0 and rk1 then 1 else 0 end as t
from(
select grade, number, sum(number) over(
order by grade
) - number + 1 as rk0,
sum(number) over(
order by grade
) as rk1,
sum(number) over() as rk2
from class_grade
order by grade
) as tb
) as tb1
where t = 1
order by grade



京公网安备 11010502036488号