MySQL查询实例:计算每门课程的平均成绩、最高成绩和最低成绩

假设我们有以下数据库表结构和数据:

1. course 表:存储课程信息

| 列名 | 说明 ||---|---|| Cno | 课程编号 (主键) || Cname | 课程名称 || Chours | 课时 || Credit | 学分 || tno | 教师编号 |

2. sc 表:存储学生选课及成绩信息

| 列名 | 说明 ||---|---|| Sno | 学号 (主键) || Cno | 课程编号 (外键) || Score | 成绩 |

3. student 表:存储学生信息

| 列名 | 说明 ||---|---|| Sno | 学号 (主键) || Sname | 姓名 || Ssex | 性别 || Sage | 年龄 || Sclass | 班级 || Scol | 院系 |

4. teacher 表:存储教师信息

| 列名 | 说明 ||---|---|| tno | 教师编号 (主键) || tname | 姓名 || tsex | 性别 || trank | 职称 || tempdate | 入职日期 |

目标: 查询sc表中每类Cno的平均Score、最高Score和最低Score,显示Cno、Cname、平均Score、最高Score和最低Score。

**SQL语句实现:**sqlSELECT sc.Cno, course.Cname, AVG(sc.Score) AS avg_score, MAX(sc.Score) AS max_score, MIN(sc.Score) AS min_scoreFROM scINNER JOIN course ON sc.Cno = course.CnoGROUP BY sc.Cno, course.Cname;

代码解析:

  1. INNER JOIN: 将 sc 表和 course 表通过共同的 Cno 列连接起来。2. AVG(sc.Score): 计算每个课程的平均成绩。3. MAX(sc.Score): 计算每个课程的最高成绩。4. MIN(sc.Score): 计算每个课程的最低成绩。5. GROUP BY sc.Cno, course.Cname: 按照课程编号和课程名称分组。

通过以上SQL语句,我们可以方便地查询每门课程的平均成绩、最高成绩和最低成绩。


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

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