select t.*
from (
select ,(
select count(distinct score)
from grade
where g.job=job and g.score<=score
) t_rank
from grade g
) t
inner join (
select job,if(count(
)&1,floor(count()/2)+1,convert(count()/2,SIGNED)) start,if(count()&1,floor(count()/2)+1,convert(count(*)/2,SIGNED)+1) end
from grade
group by job
) t2
on t.job=t2.job and t.t_rank in (t2.start,t2.end)
order by t.id;