在学生成绩信息表(StudScoreInfo) 和学生信息表(StudInfo) 中将求出的平均分按以下等级输出: 平均分等级 90~100‘优秀’ 80~90‘优良’ 70~80‘一般’ 60~70‘及格’ 60 以下 ‘不及格’
时间: 2023-08-06 07:22:38 浏览: 111
计算平均成绩和等级
好的,您的要求是根据两个表中的学生成绩信息和学生信息,将求出的平均分按照不同等级输出。以下是基于这两个表的 SQL 查询语句,使用 Case When 和 Avg 函数来实现:
```
SELECT StudInfo.stu_id, StudInfo.stu_name,
CASE WHEN AVG(StudScoreInfo.score) >= 90 AND AVG(StudScoreInfo.score) <= 100 THEN '优秀'
WHEN AVG(StudScoreInfo.score) >= 80 AND AVG(StudScoreInfo.score) < 90 THEN '优良'
WHEN AVG(StudScoreInfo.score) >= 70 AND AVG(StudScoreInfo.score) < 80 THEN '一般'
WHEN AVG(StudScoreInfo.score) >= 60 AND AVG(StudScoreInfo.score) < 70 THEN '及格'
ELSE '不及格'
END AS avg_grade
FROM StudInfo JOIN StudScoreInfo ON StudInfo.stu_id = StudScoreInfo.stu_id
GROUP BY StudInfo.stu_id, StudInfo.stu_name;
```
这条 SQL 语句首先使用 Join 操作将两个表连接起来,然后使用 Avg 函数求出每个学生的平均成绩,并根据平均成绩使用 Case When 语句来判断其所属的等级,并将结果命名为 avg_grade。最后使用 Group By 操作按照学生的 id 和姓名进行分组,输出每个学生的平均成绩等级。
阅读全文