SQL287热题-输出全班学生成绩中位数在什么等级

这个解题方法是 计算出全班总成绩记为s, 等级降序排列后对成绩累积求和记为a, 等级升序排列后对累积成绩求和记为b,

条件是a >= s/2 并且b >= s/2

条件的意思是,该成绩是中位数;

代码如下:

select grade from

(

        select grade, (select sum(number) from class_grade)total,

        sum(number) over(order by grade ASC)a,

        sum(number) over(order by grade desc)b

        from class_grade

)t1

where a >= total/2 and b >= total/2

order by grade

#笔试#
全部评论
累积求和用窗口函数法
点赞 回复 分享
发布于 03-16 13:38 上海

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务