MySQL查询每门课程平均成绩、最高成绩和最低成绩

本文介绍如何使用SQL语句查询MySQL数据库db_scsc表里每类课程编号Cno的平均成绩、最高成绩和最低成绩,并显示课程编号、学生姓名、平均成绩、最高成绩和最低成绩。

数据库表结构:

  • course表: 课程信息表,包含字段:Cno(课程编号), Cname(课程名称), Chours(课时), Credit(学分), tno(教师编号)* sc表: 学生选课表,包含字段:Sno(学号), Cno(课程编号), Score(成绩)* student表: 学生信息表,包含字段:Sno(学号), Sname(姓名), Ssex(性别), Sage(年龄), Sclass(班级), Scol(学院)* teacher表: 教师信息表,包含字段:tno(教师编号), tname(姓名), tsex(性别), trank(职称), tempdate(入职日期)

**SQL查询语句:**sqlSELECT sc.Cno, student.Sname, AVG(sc.Score) AS avg_score, MAX(sc.Score) AS max_score, MIN(sc.Score) AS min_scoreFROM scINNER JOIN student ON sc.Sno = student.SnoGROUP BY sc.Cno, student.Sname;

语句解析:

  1. 使用INNER JOIN连接sc表和student表,连接条件为sc.Sno = student.Sno,获取每个学生的课程成绩和学生信息。2. 使用聚合函数AVG(sc.Score)MAX(sc.Score)MIN(sc.Score)分别计算每门课程的平均成绩、最高成绩和最低成绩。3. 使用GROUP BY对结果进行分组,分组条件为sc.Cnostudent.Sname,即以课程编号和学生姓名为分组依据。4. 最后,查询结果将显示每个学生每门课程的课程编号、学生姓名、平均成绩、最高成绩和最低成绩。

注意:

  • 该查询结果可能会出现一个学生同一门课程有多条记录的情况,这是因为学生可能多次参加同一门课程的考试。* 可以根据实际需求修改查询语句,例如只查询某一门课程的成绩,或者对查询结果进行排序等。
MySQL查询每门课程平均成绩、最高成绩和最低成绩

原文地址: https://www.cveoy.top/t/topic/fVcK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录