创建视图 视图内容为每门课程的课程号 课程名 选课人数 平均成绩 并按平均成绩降序排列
时间: 2023-11-10 19:05:09 浏览: 327
好的,以下是创建该视图的 SQL 语句:
```sql
CREATE VIEW course_summary AS
SELECT course.course_id, course.course_name, COUNT(*) AS enrolled_count, AVG(score) AS avg_score
FROM course JOIN enrollment ON course.course_id = enrollment.course_id
GROUP BY course.course_id, course.course_name
ORDER BY avg_score DESC;
```
该视图会返回每门课程的课程号、课程名、选课人数和平均成绩,并按照平均成绩降序排列。您可以通过以下语句查询该视图:
```sql
SELECT * FROM course_summary;
```
相关问题
在选课管理数据库中,如何创建一个名为View2的视图,该视图应显示哪些字段(如学号、姓名、最高分、最低分和平均分),并且数据需按照学号以降序的方式进行排序?
在选课管理数据库中,如果已经有包含学生个人信息、课程成绩等数据的表,例如`Students`(存储学号和姓名)、`Scores`(存储学号、课程名和成绩)等,我们可以创建一个名为`View2`的视图,展示学号、姓名、最高分、最低分和平均分。以下是创建这种视图的一般步骤和SQL语句示例:
首先,假设我们在`Scores`表中有`StudentID`和`Score`字段:
```sql
CREATE VIEW View2 AS
SELECT Students.StudentID AS '学号',
Students.Name AS '姓名',
MAX(Scores.Score) OVER (PARTITION BY Students.StudentID) AS '最高分',
MIN(Scores.Score) OVER (PARTITION BY Students.StudentID) AS '最低分',
AVG(Scores.Score) OVER (PARTITION BY Students.StudentID) AS '平均分'
FROM Students
JOIN Scores ON Students.StudentID = Scores.StudentID
ORDER BY Students.StudentID DESC;
```
上述SQL语句使用了窗口函数(Window Function),通过`OVER(PARTITION BY Students.StudentID)`对每个学生的成绩进行最大值、最小值和平均值计算。然后按学号进行降序排列。
阅读全文