题解 | #考试分数(五)#

考试分数(五)

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()这个字段来判断

全部评论

相关推荐

07-18 18:45
已编辑
中山职业技术学院 Java
投递TP-LINK等公司10个岗位
点赞 评论 收藏
分享
06-04 19:53
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务