9、查询全部学生都选修了的课程号和课程名,并计算这门课程的最低、最高、平均成绩。
时间: 2024-10-20 13:12:50 浏览: 40
学生成绩管理系统(课程设计).zip
为了查询所有学生都选修过的课程号及其名称,并计算出该课程的最低、最高和平均成绩,我们需要假设我们有一个数据库表结构,其中包括学生信息表(如学生ID和课程ID)、课程信息表(课程号、课程名)以及成绩表(关联学生ID和课程ID,存储成绩)。以下是SQL查询的一般步骤:
1. 首先,找出所有被至少一名学生选择的课程ID,可以使用INNER JOIN和GROUP BY来实现:
```sql
SELECT c.course_id, c.course_name
FROM courses c
JOIN enrollments e ON c.course_id = e.course_id
GROUP BY c.course_id, c.course_name
HAVING COUNT(DISTINCT e.student_id) = (SELECT COUNT(*) FROM students);
```
2. 接着,对选定的课程ID获取其所有成绩并计算最低分(MIN(score))、最高分(MAX(score))和平均分(AVG(score)):
```sql
SELECT course_id, course_name,
MIN(score) as min_score, MAX(score) as max_score, AVG(score) as avg_score
FROM (
SELECT c.course_id, c.course_name, e.score
FROM courses c
JOIN enrollments e ON c.course_id = e.course_id
WHERE c.course_id IN (
-- 上一步得到的课程ID列表
)
) subquery
GROUP BY course_id, course_name;
```
请注意,实际的SQL查询会依赖于具体的数据库表和字段命名,上述查询仅提供了一个通用的框架。
阅读全文