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
#笔试#