``` CREATE or REPLACE view score_view AS SELECT s.sid,s.sname,c.cname GROUP BY s.sname;```修改score_view视图,将视图重定义为每个学生的学号、姓名、选课门数和平均成绩
时间: 2024-11-06 12:24:34 浏览: 53
sql.rar_SPJ_SQL例程_city_site:www.pudn.com_数据库spj表
5星 · 资源好评率100%
要修改`score_view`视图,使其包含每个学生的学号(sid)、姓名(sname)、选课门数以及平均成绩,你需要添加计算平均成绩的部分。假设表`sc`包含了学生选课的成绩记录,可以按这个思路更新视图:
```sql
CREATE or REPLACE VIEW score_view AS
SELECT s.sid, s.sname,
COUNT(c.cid) AS total_courses,
AVG(sc.score) AS average_score
FROM students s
LEFT JOIN courses c ON s.sid = c.sid
JOIN sc ON s.sid = sc.sid AND c.cid = sc.cid
GROUP BY s.sid, s.sname;
```
这里我们进行了以下调整:
1. 添加了`COUNT(c.cid)`来计算每个学生选修课程的数量,即选课门数。
2. 使用`AVG(sc.score)`计算每个学生的平均成绩,这里假设有一个名为`sc`的子查询,用于存储每个课程的成绩。
3. 使用`LEFT JOIN`和`JOIN`关联了`students`表和`courses`表,然后通过`sc`表获取对应的成绩。
阅读全文