用mysql查询选修课程3门以上且成绩在90分以上的学生的情况
时间: 2024-02-12 10:09:13 浏览: 111
可以使用如下的 SQL 查询语句:
```
SELECT s.student_id, s.student_name
FROM student s
JOIN score sc ON s.student_id = sc.student_id
WHERE sc.course_id IN (SELECT course_id FROM course WHERE course_type = '选修')
GROUP BY s.student_id, s.student_name
HAVING COUNT(DISTINCT sc.course_id) >= 3 AND AVG(sc.score) >= 90;
```
这条查询语句会先从 `course` 表中查询出所有课程类型为 "选修" 的课程 ID,然后通过 `JOIN` 操作将 `student` 表和 `score` 表连接起来。接着,我们使用 `GROUP BY` 子句对学生 ID 和姓名进行分组,并使用 `HAVING` 子句筛选出选修课程数量大于等于 3 门且平均成绩大于等于 90 分的学生。
相关问题
mysql查询选修2号课程且成绩在90分以上的所有学生的学号和姓名
以下是MySQL查询选修2号课程且成绩在90分以上的所有学生的学号和姓名的语句:
```mysql
SELECT student.sno, student.sname
FROM student, sc
WHERE student.sno = sc.sno
AND sc.cno = '2'
AND sc.grade >= 90;
```
其中,`student`是学生表,`sc`是选课表,`sno`是学号,`sname`是姓名,`cno`是课程号,`grade`是成绩。
用mysql 查询选修了2门以上课程的学生学号和平均成绩。
这是一个技术问题,可以回答。您可以使用以下SQL语句查询:
SELECT student_id, AVG(score) as avg_score
FROM course_selection
GROUP BY student_id
HAVING COUNT(*) >= 2;
阅读全文