题解 | #考试分数(五)#
考试分数(五)
http://www.nowcoder.com/practice/b626ff9e2ad04789954c2132c74c0512
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;