假设你有两个表:一个学生表(student_209)和一个课程表(course_209)和一个选课表(sc_209)。 学生表包含学生的信息,包括学生的学号sno和姓名sname。 课程表包含课程的信息,包括课程编号cno,课程名称cname和学分credit,选课表,其中包含学生的选课信息,包括学生的学号sno,课程编号cno和分数grade。查询选修了1门且平均分在80分以下课程的学生的学号。
时间: 2023-06-12 13:03:55 浏览: 185
学生所修的和课程和成绩显示表
可以使用以下 SQL 查询语句来实现:
```
SELECT sc_209.sno
FROM sc_209
JOIN course_209 ON sc_209.cno = course_209.cno
GROUP BY sc_209.sno
HAVING COUNT(*) = 1 AND AVG(sc_209.grade) < 80;
```
这个查询语句使用了三个表的连接,首先将选课表(sc_209)和课程表(course_209)通过课程编号(cno)进行连接,然后根据学生学号(sno)进行分组,筛选出只选修了一门课程的学生,并计算他们的平均分数,最后筛选出平均分在80分以下的学生学号。
阅读全文