SQL 查询:统计学生选课门数和平均成绩
成绩统计表的构造和求解思路如下:
'构造思路:'
- 需要从选课表 SC 中统计每位学生的选课门次。
- 需要计算每位学生的平均成绩。
- 最后,按照平均成绩的降序排列结果。
'SQL 语句:'
SELECT
S.Sno,
S.Sname,
COUNT(SC.Cno) AS '学科门数',
AVG(SC.Grade) AS '平均成绩'
FROM
S
LEFT JOIN
SC ON S.Sno = SC.Sno
GROUP BY
S.Sno, S.Sname
ORDER BY
'平均成绩' DESC;
在这个 SQL 语句中,我们使用了 LEFT JOIN 来确保即使学生没有选课记录,他们也会出现在结果中。最后,我们根据平均成绩的降序对结果进行排序。
'成绩统计表示例运行结果:'
+--------+--------+---------+--------+
| Sno | Sname | '学科门数' | '平均成绩' |
+--------+--------+---------+--------+
| S001 | 张三 | 2 | 88.25 |
| S002 | 李四 | 2 | 85.25 |
| S003 | 王五 | 1 | 78.0 |
+--------+--------+---------+--------+
请注意,上述 SQL 语句是基于给出的表结构和数据进行编写的。在实际使用时,请根据数据库软件的语法要求进行微调或调整。
原文地址: https://www.cveoy.top/t/topic/brUP 著作权归作者所有。请勿转载和采集!