使用sql语句中的开窗函数查询每个班级中英语成绩最好的同学,结果输出:班级 姓名 分数
时间: 2024-03-05 21:48:50 浏览: 114
可以使用如下的 SQL 语句查询每个班级中英语成绩最好的同学:
```
SELECT class, name, score
FROM (
SELECT class, name, score, ROW_NUMBER() OVER (PARTITION BY class ORDER BY score DESC) AS rank
FROM scores
WHERE subject = 'English'
) AS t
WHERE rank = 1;
```
其中,`scores` 表是包含学生成绩信息的表,包含字段 `name`(姓名)、`class`(班级)、`subject`(科目)和 `score`(成绩)等。在这个查询中,我们使用了开窗函数 `ROW_NUMBER()` 来计算每个班级中英语成绩排名第一的同学。具体来说,我们使用 `PARTITION BY` 按照班级对成绩进行分组,然后使用 `ORDER BY` 对成绩进行降序排列,最后使用 `ROW_NUMBER()` 函数为每个同学计算排名。最后,我们在外层查询中筛选出排名为 1 的同学,输出班级、姓名和分数信息。
阅读全文