如何构造一个数据库视图来分别计算每门课程的最低分、平均分、最高分以及该课程的选修学生总数?
时间: 2024-10-14 15:17:23 浏览: 31
[例]计算号课程的学生平均成绩。-数据库 SQL语言
要构建一个数据库视图来同时计算每门课程的最低分、平均分、最高分以及选修的学生总数,首先需要设计一个包含课程ID、学生ID、分数等信息的表格。假设我们已经有了名为`course_enrollment`的视图,其中包含课程ID和选修该课程的学生ID。
你可以按照下面的方式来创建新的视图`course_summary`:
```sql
CREATE VIEW course_summary AS
SELECT
c.course_id,
MIN(sc.score) AS lowest_score,
AVG(sc.score) AS average_score,
MAX(sc.score) AS highest_score,
COUNT(DISTINCT sc.student_id) AS total_students
FROM
course_enrollment ce
JOIN
(SELECT course_id, score FROM course_scores) sc ON ce.course_id = sc.course_id
GROUP BY
c.course_id;
```
这个视图通过`JOIN`操作将`course_enrollment`和`course_scores`两个表连接起来,然后对每个课程ID进行分组,分别计算最小分(`MIN(sc.score)`)、平均分(`AVG(sc.score)`)、最大分(`MAX(sc.score)`)和学生总数(`COUNT(DISTINCT sc.student_id)`)。
阅读全文