# 按照语言进行分组,并排序
# 找出中位数的序号,并将序号内连接到原始表格
# 再次分组排序
select 
    c.id as id, 
    c.job as job,
    c.score as score,
    c.ranks as t_rank
from
    (select
        a.job as job,
        case when mod(count(*),2) = 1 then round(ceil(count(*)/2) )
            when mod(count(*),2) = 0 then round(count(*)/2) end as start,
        case when mod(count(*),2) = 1 then round(ceil(count(*)/2) )
            when mod(count(*),2) = 0 then round(count(*)/2 + 1) end as end    
    from 
        (select
        *,
        dense_rank() over(partition by job order by score desc) as ranks
        from
        grade) a 
    group by 
        a.job) b 
inner join
    (select
        *,
        dense_rank() over(partition by job order by score desc) as ranks
        from
        grade) c
on 
    b.job = c.job
where 
    c.ranks in (b.start,b.end)
order by
    id asc;