每年每门学科排名第一的学生
2020,语文,A,83 |
思路:
- 提取关键词每年、每门学科、排名第一
解决:
按年份和学科分组,求分数的最高值
- 实现方法1: 使用
max()
函数拿到分组后的最大分数,自己join
自己,拿到最大分数对应的学生,好处是实现的结果如果有多个第一会同时拿到。
select |
- 实现方法2: 使用窗口的
max()
函数开窗拿到最高分数,做个过滤拿到和最高分数相同分数的学生,好处是实现的结果如果有多个第一会同时拿到。
select |
- 实现方法3: 使用
first_value()
函数开窗,对年份、课程分区,对分数降序排序,拿到第一条记录,缺点是结果重复需要去重,实现的结果如果有多个第一只会拿一条结果。
select |
该需求实现方式多样。