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

考试分数(五)

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

SELECT
id,
job,
score,
t_rank

FROM(
    SELECT
    *,
    DENSE_RANK() OVER(PARTITION BY job ORDER BY score DESC) AS t_rank,
    COUNT(*) OVER(PARTITION BY job) AS num

    FROM grade) AS t1

WHERE 
CASE WHEN num%2 = 0 THEN t_rank BETWEEN FLOOR((num + 1)/2) AND CEILING((num + 1)/2)
     ELSE t_rank = num/2 + 0.5
END
    
ORDER BY id

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 11:45
你不要过来啊啊啊啊啊啊啊
码农索隆:对面:“今天你不面也得面”
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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