select g.id, g.job, g.score, t_rank from ( select id, job, score, row_number() over ( partition by job order by score DESC ) as t_rank from grade ) as g join ( select job, floor((count(job) + 1) / 2) as t1, floor((count(job) + 2) / 2) as t2 from grade group by job ) as tmp on g.job = tmp.job where g.t_rank in (tmp.t1, tmp.t2) order by id ASC