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

考试分数(五)

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

/*
select *, rank()over(PARTITION by job order by score)
FROM grade

SELECT count(*) as c
from grade
GROUP by job
*/
SELECT t0.id, t0.job, t0.score, t0.r 
FROM (select *, rank()over(PARTITION by job order by score desc) as r
FROM grade) as t0
left JOIN (SELECT count(*) as c, job
from grade
GROUP by job) as t1
on t0.job = t1.job
WHERE t0.r = ROUND(t1.c/2) or t0.r = ROUND((t1.c+1)/2)
ORDER by t0.id;
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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