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

最差是第几名(二)

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

select 
grade
from(
    select 
    grade,
    lag(sum,1,0) over(order by grade) as lag_sum,
    sum,
    n1,
    n2
    from(
        
        select grade,
        sum(number)over(order by grade) sum,
        floor(((select sum(number) from class_grade)+1)/2) as n1,
        ceil(((select sum(number) from class_grade)+1)/2) as n2
        from class_grade
    )a

)b
where (n1>lag_sum and n1<=sum) or (n2>lag_sum and n2<=sum)
order by grade

最直观的方法去看中位数落在哪个区间。

全部评论

相关推荐

09-09 09:17
已编辑
东华理工大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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