select t.id,t.job,t.score,t.num from (select id,job,score,row_number() over(partition by job order by score desc) num, count(score) over(partition by job) con from grade)t where abs(t.num-(t.con+1)/2)<1 order by t.id