mysql 统计每门课程的选课人数、每门课程的最高分、最低分、平均分。
时间: 2023-06-26 08:10:21 浏览: 2115
可以使用以下 SQL 语句实现:
```
SELECT
course_name,
COUNT(DISTINCT student_id) AS num_students,
MAX(score) AS max_score,
MIN(score) AS min_score,
AVG(score) AS avg_score
FROM
course_score
INNER JOIN courses ON course_score.course_id = courses.course_id
GROUP BY
course_name;
```
其中,`course_score` 表是存储了每个学生在每门课程上的成绩信息的表,`courses` 表是存储了每门课程的基本信息的表。这个 SQL 语句会将两个表联结起来,并且按照课程名称分组,统计每门课程的选课人数、最高分、最低分和平均分。最终结果会以课程名称为行,各个统计指标为列的形式呈现。
相关问题
用MySQL查询选课表中各门课的课程号,最高分,最低分和平均分,查询结果各列的列名分别为课程号,最高分,最低分和平均分。
可以使用如下的SQL语句进行查询:
```
SELECT course_id, MAX(score) AS highest_score, MIN(score) AS lowest_score, AVG(score) AS average_score
FROM course_selection
GROUP BY course_id;
```
其中,`course_selection` 表为选课表,包含了学生的选课信息,包括课程号 `course_id` 和分数 `score`。使用 `GROUP BY` 语句按照课程号分组,然后使用聚合函数 `MAX`、`MIN` 和 `AVG` 计算每门课的最高分、最低分和平均分。最后,使用 `AS` 关键字为聚合函数指定别名,使得查询结果的列名符合要求。
mysql 输出平均分最低的学生的学号、姓名、选课数量、最高分、最低分、和平均分
在MySQL中,为了获取平均分最低的学生信息,你需要从相关的表中联查数据,比如`students`(包含学生信息,如学号、姓名等)和`grades`(包含学生的成绩及课程信息)。假设学号是`student_id`,姓名是`name`,选课数量对应于学生参与的所有课程数目,最高分和最低分分别存储在`max_score`和`min_score`字段中。查询大致如下:
```sql
SELECT s.student_id, s.name, COUNT(g.course_id) AS total_courses,
MAX(g.score) AS max_score, MIN(g.score) AS min_score, AVG(g.score) AS avg_score
FROM students s
LEFT JOIN grades g ON s.student_id = g.student_id
GROUP BY s.student_id, s.name
ORDER BY avg_score ASC
LIMIT 1;
```
此查询会找到平均分最低的学生,并显示其学号、姓名、选课数量、最高分、最低分和平均分。
阅读全文