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

考试分数(五)

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

SELECT t1.id, t1.job, t1.score, t1.t_rank
FROM (
         SELECT g.*, DENSE_RANK() OVER (PARTITION BY g.job ORDER BY g.score DESC) t_rank
         FROM grade g
     ) t1,
     (
         SELECT g.job, FLOOR((COUNT(g.job) + 1) / 2) start, FLOOR((COUNT(g.job) + 2) / 2) end
         FROM grade g
         GROUP BY g.job
     ) t2
WHERE t1.job = t2.job
  AND t1.t_rank IN (t2.start, t2.end)
ORDER BY t1.id ASC;

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务