确实难啊写这个区间 | #最差是第几名(二)#

最差是第几名(二)

https://www.nowcoder.com/practice/165d88474d434597bcd2af8bf72b24f1

WITH ranked AS(
    SELECT
        grade,
        number,
        SUM(number) OVER () AS total,
        SUM(number) OVER (ORDER BY grade) AS roll
    FROM 
        class_grade
    ORDER BY 
        grade
)

SELECT 
    grade
FROM 
    ranked
WHERE 
    (total % 2 = 0 AND (((total / 2) BETWEEN (roll - number + 1) AND roll)  #偶数
        OR ((total / 2 + 1) BETWEEN (roll - number + 1) AND roll)))
    OR
    (total % 2 = 1 AND ((total + 1) / 2) BETWEEN (roll - number + 1) AND roll)  #奇数
ORDER BY
    grade

全部评论

相关推荐

03-16 22:00
武汉大学 C++
幸福的小熊猫想要offer:我阿里投的 c++岗,面试官说自己是做 java 的,c++这辈子才有了
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务