题目描述
我们有一个表:
class_grade:包含班级成绩信息,包括成绩等级grade和该等级的学生人数number。
目标是查询出每个成绩等级的学生最差排名,并按成绩等级升序排列。根据示例可知,最差排名即每个成绩等级的累积和。
知识点
- 窗口函数:使用
SUM窗口函数计算每个成绩等级的累积排名。 - 排序:使用
ORDER BY子句按成绩等级升序排列结果。
关键问题分析
1. 计算每个成绩等级的累积排名
我们使用SUM窗口函数计算每个成绩等级的累积排名:
sum(number) over(order by grade asc) as t_rank
SUM(number) OVER (ORDER BY grade ASC) AS t_rank: 计算每个成绩等级的累积排名,按成绩等级升序排列。
2. 排序输出
我们按成绩等级升序排列输出结果:
order by grade asc
ORDER BY grade ASC: 按成绩等级升序排列。
完整代码
select grade, sum(number) over(order by grade asc) as t_rank
from class_grade
order by grade asc;

京公网安备 11010502036488号