MySQL查询每门课程平均成绩、最高成绩和最低成绩
MySQL查询每门课程平均成绩、最高成绩和最低成绩
本文介绍如何使用SQL语句查询MySQL数据库db_sc中sc表里每类课程编号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;
语句解析:
- 使用
INNER JOIN连接sc表和student表,连接条件为sc.Sno = student.Sno,获取每个学生的课程成绩和学生信息。2. 使用聚合函数AVG(sc.Score)、MAX(sc.Score)和MIN(sc.Score)分别计算每门课程的平均成绩、最高成绩和最低成绩。3. 使用GROUP BY对结果进行分组,分组条件为sc.Cno和student.Sname,即以课程编号和学生姓名为分组依据。4. 最后,查询结果将显示每个学生每门课程的课程编号、学生姓名、平均成绩、最高成绩和最低成绩。
注意:
- 该查询结果可能会出现一个学生同一门课程有多条记录的情况,这是因为学生可能多次参加同一门课程的考试。* 可以根据实际需求修改查询语句,例如只查询某一门课程的成绩,或者对查询结果进行排序等。
原文地址: https://www.cveoy.top/t/topic/fVcK 著作权归作者所有。请勿转载和采集!