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

考试分数(五)

http://www.nowcoder.com/practice/b626ff9e2ad04789954c2132c74c0512

select r.id, r.job, r.score, r.t_rank
from 
(select co.job job, co.c number, 
case when c%2=1 then round((c+1)/2,0) else round(c/2,0) end as start, 
case when c%2=1 then round((c+1)/2,0) else round((c/2)+1,0) end as end
from (select job, count(job) c from grade group by job) co) bc
left join
(select id, job, score, row_number()over(partition by job order by score desc) t_rank from grade) r
on bc.job=r.job
where r.t_rank=bc.start or r.t_rank=bc.end
order by r.id


全部评论

相关推荐

12-22 16:31
已编辑
桂林电子科技大学 Python
很奥的前端仔:如果你接了offer 临时又说不去 hr确实要多做一些工作。 当然如果是接offer之前当我没说
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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