题解 | #最差是第几名(二)#

最差是第几名(二)

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

写得不好,自己玩的,我其实想要explode的但是好像mysql这里用不了,有一种情况比如偶数的时候都落在了一个grade,应该显示两个还是一个,题好像没有考虑这个问题。这个方案只能说是我妥协后的思路吧,不太行感觉

select 
    grade
from 
(
    select 
        grade,
        case when allNums mod 2 = 0 
            then if((allNums / 2 > (end - number) and allNums / 2 <= end) or (allNums/2 + 1 > (end - number) and allNums / 2 + 1 <= end),1,0)
            else if(ceil(allNums/2) > (end - number) and ceil(allNums/2) <= end,1,0) end as flag
    from 
    (
        select 
            grade,sum(number) over(order by grade) as end,number, sum(number) over() as allNums
        from class_grade
    ) t1
) t2 where flag = 1 
order by grade

全部评论

相关推荐

点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
06-17 21:57
门头沟学院 Java
白友:噗嗤,我发现有些人事就爱发这些,明明已读不回就行了,就是要恶心人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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