SELECT id,job, score, t_rank FROM (SELECT a.id, a.job, a.score, RANK() OVER (PARTITION BY job ORDER BY score DESC) t_rank,b.start,b.end FROM grade a

LEFT JOIN

(SELECT job, CASE WHEN MAX(t)%2=0 THEN ROUND(MAX(t)/2+1,0) ELSE CEILING(MAX(t)/2) END start, CASE WHEN MAX(t)%2=0 THEN ROUND(MAX(t)/2,0) ELSE CEILING(MAX(t)/2) END end FROM (SELECT id, job, score, RANK() OVER (PARTITION BY job ORDER BY score ASC) t FROM grade) c

GROUP BY job) b

ON a.job=b.job) d WHERE t_rank=start OR t_rank =end

ORDER BY id ASC