with median_rows as(select
    job,
    floor((count(*)+1)/2) as start_row,
    floor((count(*)+2)/2) as end_row
from grade
group by job)

select 
    t1.*
from
    (select
        id,
        job,
        score,
        dense_rank() over(partition by job order by score desc) as t_rank
    from grade
    order by id) t1
left join median_rows on t1.job=median_rows.job
where
    t1.t_rank=median_rows.start_row
    or
    t1.t_rank=median_rows.end_row
order by
    t1.id