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

最差是第几名(二)

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

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

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务