每年总成绩都有提升的学生
2020,语文,A,83 |
思路:
- 提取关键词每年、总成绩、都有提升
解决:
- 对年份和学生分组,求总成绩。
- 使用
lag()
函数开窗,lag用于统计窗口内往上第n行值,取不到就给默认值,我们这里向上取一行,默认值为0,并且对学生分区,对年份排序(跟lag取数的顺序相关)。 - 每一行的总成绩减去lag函数拿到的上一行成绩,得到的可能是正数也可能是负数,正数代表提升。
- 使用
if()
函数对上面的结果进行处理,如果结果大于0给1,小于等于0给0,得到diff,方便统计。 - 子查询,对学生分区,使用avg()函数对diff进行统计,等于1则说明总成绩每年都在提升。
代码:
select |
结果:
2020 A 1 |