教学管理数据库有如下三张基本表: Student(Sno, Sname, Ssex, Sage, Sdept) Course(Cno, Cname, Ccredit, Semste, Period) SC(Sno, Cno, Grade) 请使用SQL语句表达下面的要求 找出所有科目都及格的同学的平均成绩。
时间: 2023-07-30 17:04:14 浏览: 114
查看学生各课程考试成绩平均分.sql
可以使用嵌套查询和聚合函数来实现该要求,具体的 SQL 语句如下:
```
SELECT AVG(Grade) AS AvgGrade
FROM SC
WHERE Sno IN (
SELECT Sno
FROM SC
WHERE Grade >= 60
GROUP BY Sno
HAVING COUNT(*) = (
SELECT COUNT(*)
FROM Course
)
);
```
解释一下上面的 SQL 语句:
1. 在 SC 表中查找满足条件的记录,即只选取成绩大于等于 60 分的记录。
2. 使用 GROUP BY 和 HAVING 语句筛选出所有科目都及格的同学,即选取选修课程数等于总课程数的学生。
3. 在这些学生的记录中,计算他们的平均成绩。
最后,查询结果会返回一个平均成绩的值,即所有科目都及格的同学的平均成绩。
阅读全文