以下是在MySQL中针对teaching库实现查询某个专业学生所选的每门课的平均成绩的函数以及调用示例:
时间: 2024-11-03 18:21:29 浏览: 12
在MySQL中,你可以使用`AVG()`聚合函数结合`JOIN`语句来实现这个需求。假设你有一个`students`表记录学生的个人信息,包括专业ID(`student_major`);还有一个`courses`表存储课程信息,包含课程ID(`course_id`)和对应的分数(`grade`)。那么查询特定专业的学生每门课的平均成绩可以这样做:
```sql
SELECT s.student_major, c.course_name, AVG(c.grade) as average_grade
FROM students s
JOIN student_courses sc ON s.student_id = sc.student_id
JOIN courses c ON sc.course_id = c.course_id
WHERE s.student_major = '目标专业'
GROUP BY s.student_major, c.course_name;
```
在这个查询中:
- `JOIN`将`students`, `student_courses`, 和 `courses` 表连接起来,通过学生ID和课程ID关联数据。
- `WHERE`子句指定要查询的专业。
- `AVG(c.grade)`计算每个课程的平均分数。
- `GROUP BY`按照专业和课程名称分组,确保每个组合都有其独立的平均成绩。
如果你想要查看所有专业的平均成绩,可以省略`WHERE`子句,并可能需要去掉`GROUP BY`中的专业字段,因为没有了条件,就不需要按专业分组。
阅读全文