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

最差是第几名(二)

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

全部评论

相关推荐

听说改名字就能收到offer哈:Radis写错了兄弟
点赞 评论 收藏
分享
整顿职场的柯基很威猛:这种不可怕,最可怕的是夹在一帮名校里的二本选手,人家才是最稳的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务