题解 | #考试分数(五)#
考试分数(五)
http://www.nowcoder.com/practice/b626ff9e2ad04789954c2132c74c0512
WITH j AS (SELECT job,ceil(count(*)/2) start,floor(count(*)/2)+1 end
FROM grade
GROUP BY job),
t AS (select *,ROW_NUMBER() over(partition by job order by score desc) t_rank
from grade)
select t.*
from t join j on t.job=j.job
where start=t.t_rank or end = t.t_rank
ORDER BY id
要求输出的t_rank没有说清楚是什么排序,如果是其他的排序如rank或者desen_rank,那么就要多加一个字段 where条件必须使用ROW_NUMBER()这个字段来判断