select
    grade
from
    (
        select
            grade,
            sum(number) over (
                order by
                    grade asc
            ) as ascnum,
            sum(number) over (
                order by
                    grade desc
            ) as descnum,
            (
                select
                    sum(number)
                from
                    class_grade
            ) as total
        from
            class_grade
    ) sub
where
    ascnum >= total / 2
    and descnum >= total / 2
order by
    grade asc;