统计每个学生的选课门数和考试总成绩,MySQL
时间: 2023-11-28 10:49:13 浏览: 115
假设有两个表,一个是学生表(student),包含学生的学号(id)和姓名(name);另一个是选课表(course),包含选课信息,包括学号(id)、课程名称(name)和考试成绩(score)。
可以使用如下 SQL 语句来统计每个学生的选课门数和考试总成绩:
```
SELECT student.id, student.name, COUNT(course.id) AS num_courses, SUM(course.score) AS total_score
FROM student LEFT JOIN course ON student.id = course.id
GROUP BY student.id, student.name
```
这里使用了 LEFT JOIN 进行学生表和选课表的关联,以保证即使某个学生没有选课,也能出现在结果中。然后使用 COUNT 函数统计选课门数,使用 SUM 函数统计考试总成绩。最后使用 GROUP BY 子句按照学生的 id 和 name 进行分组,得到每个学生的选课门数和考试总成绩。
相关问题
统计每个学生的选课门数和考试总成绩,并按选课门数降序排列。MySQL
可以使用以下 SQL 语句来实现:
```
SELECT student_id, COUNT(course_id) AS course_count, SUM(score) AS total_score
FROM exam_results
GROUP BY student_id
ORDER BY course_count DESC
```
其中,`exam_results` 是成绩表的表名,包括列 `student_id`、`course_id` 和 `score`。`COUNT(course_id)` 统计每个学生的选课门数,`SUM(score)` 统计每个学生的考试总成绩。`GROUP BY student_id` 按学生分组,`ORDER BY course_count DESC` 按选课门数降序排列。
MySQL查询所有同学的学号、姓名、选课数、总成绩
可以使用以下SQL语句查询所有同学的学号、姓名、选课数、总成绩:
```
SELECT student.id, student.name, COUNT(score.course_id) AS course_num, SUM(score.score) AS total_score
FROM student LEFT JOIN score ON student.id = score.student_id
GROUP BY student.id, student.name;
```
上述SQL语句中,使用了LEFT JOIN将学生表(student)和成绩表(score)连接起来,以便查询学生的选课数和总成绩。使用COUNT和SUM函数对选课数和总成绩进行统计,并使用GROUP BY对每个学生进行分组。