SQL语句 统计平时考试成绩大于等于80分的学生的姓名、考试的课程号、考试成绩和平均成绩,并将结果按平均成绩降序排列
时间: 2023-06-11 13:09:29 浏览: 173
查看学生各课程考试成绩平均分.sql
假设有以下表:
- 学生表:student(sid, sname, gender)
- 课程表:course(cid, cname)
- 成绩表:score(sid, cid, score)
则可以使用以下 SQL 语句实现:
```sql
SELECT s.sname, sc.cid, sc.score, AVG(sc.score) AS avg_score
FROM student s, score sc
WHERE s.sid = sc.sid AND sc.score >= 80
GROUP BY s.sid, sc.cid, sc.score
ORDER BY avg_score DESC;
```
解释一下:
- 使用 `JOIN` 连接学生表和成绩表,查询条件为成绩大于等于 80 分。
- 使用 `GROUP BY` 分组,分别按照学生 ID、课程 ID 和成绩进行分组。
- 使用 `AVG` 函数计算每个分组的平均成绩,并将其命名为 `avg_score`。
- 使用 `ORDER BY` 按照平均成绩降序排列。
阅读全文