数据库中,使用相关子查询,查询成绩比操作系统这节课的平均成绩高的学生的学号及成绩
时间: 2024-02-03 11:12:44 浏览: 53
查询数据库中所有有成绩的学生的学号和课程号
4星 · 用户满意度95%
假设有以下两张表:
**student表**
| 学号 | 姓名 |
| ---- | ---- |
| 001 | 张三 |
| 002 | 李四 |
| 003 | 王五 |
**score表**
| 学号 | 课程 | 成绩 |
| ---- | ---- | ---- |
| 001 | 数据库 | 80 |
| 001 | 操作系统 | 90 |
| 002 | 数据库 | 85 |
| 002 | 操作系统 | 75 |
| 003 | 数据库 | 95 |
| 003 | 操作系统 | 85 |
则可以使用以下 SQL 语句查询:
```
SELECT s.学号, sc.成绩
FROM student s, score sc
WHERE sc.课程 = '操作系统'
AND sc.成绩 > (SELECT AVG(成绩) FROM score WHERE 课程 = '操作系统')
AND s.学号 = sc.学号;
```
这条 SQL 语句使用了一个相关子查询 `(SELECT AVG(成绩) FROM score WHERE 课程 = '操作系统')`,查询了操作系统这节课的平均成绩,并在外层 SQL 查询中使用了这个平均成绩,筛选出成绩高于平均成绩的学生学号和成绩。
阅读全文