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

最差是第几名(二)

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

-- 使用CTE(Common Table Expression)创建一个临时表t
with t as (
    -- 从class_grade表中选择grade列
    select grade,
           -- 计算班级总人数
           (select sum(number) from class_grade) as total,
           -- 按grade升序累加人数
           sum(number) over(order by grade asc) as a,
           -- 按grade降序累加人数
           sum(number) over(order by grade desc) as b
    from class_grade
)

-- 查询中位数所在的grade
select grade
from t
-- 条件:累加人数a和b都大于等于总人数的一半
where a >= total / 2 and b >= total / 2
-- 按grade升序排序
order by grade;

全部评论

相关推荐

zygg:拼多多挂是不是过一两天就挂的呀
点赞 评论 收藏
分享
04-11 23:51
门头沟学院 Java
坚定的芭乐反对画饼_许愿Offer版:人人都能过要面试干嘛,发个美团问卷填一下,明天来上班不就好了
点赞 评论 收藏
分享
03-02 02:44
门头沟学院 Java
墨西哥大灰狼:说实话尚庭公寓还是尽量换了,全是增删改查没什么意义
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务