mysql统计有学生选修的课程的门数
时间: 2024-03-16 17:45:54 浏览: 430
你可以使用以下SQL语句来统计有学生选修的课程的门数:
```
SELECT COUNT(DISTINCT course_id) FROM student_course;
```
其中,`student_course`是选课表的表名,`course_id`是课程ID的列名。这条SQL语句会返回一个数字,表示有多少门课程至少有一个学生选修。
相关问题
mysql统计所有学生的课程门数
要统计所有学生的课程门数,可以使用以下 SQL 语句:
```
SELECT student_id, COUNT(*) AS course_count
FROM course_registration
GROUP BY student_id;
```
这个语句假设你有一个名为 `course_registration` 的表,其中包含学生 ID 和课程 ID,表示学生选修了哪些课程。它会对所有学生进行分组,然后统计每个学生选修的课程数量。
用mysql按照学号统计学生选修课程的平均分
假设有三张表:学生表(student)、课程表(course)和成绩表(score),其中学生表包含学生的信息,课程表包含课程的信息,成绩表包含学生选修课程的成绩信息。
学生表结构:
| 字段名 | 类型 |
| ------ | ------- |
| id | int |
| name | varchar |
课程表结构:
| 字段名 | 类型 |
| ------ | ------- |
| id | int |
| name | varchar |
成绩表结构:
| 字段名 | 类型 |
| ---------- | ------- |
| id | int |
| student_id | int |
| course_id | int |
| score | decimal |
按照学号统计学生选修课程的平均分,可以使用以下SQL语句:
```
SELECT student.id, AVG(score.score) AS avg_score
FROM student
JOIN score ON student.id = score.student_id
GROUP BY student.id;
```
解释:
1. 使用JOIN将学生表和成绩表关联起来,以便统计每个学生的平均分。
2. 使用GROUP BY按照学号分组,以便对每个学生的成绩进行求平均值。
3. 使用AVG函数求平均值。
注意:
1. 如果需要显示学生的姓名,可以将SELECT语句改为:
```
SELECT student.id, student.name, AVG(score.score) AS avg_score
```
2. 如果需要按照课程统计平均分,可以将JOIN语句中的表从score改为course,同时将GROUP BY语句中的student.id改为course.id。