(2)创建视图v_cnt,显示每门课程成绩超过90(含90)分的课程代码和人数。
时间: 2023-12-30 18:06:15 浏览: 36
可以使用以下 SQL 语句创建视图 v_cnt:
```sql
CREATE VIEW v_cnt AS
SELECT course_id, COUNT(*) AS cnt
FROM scores
WHERE score >= 90
GROUP BY course_id;
```
这个视图会显示每门课程成绩超过90分的课程代码和人数,其中 `course_id` 是课程代码,`cnt` 是该门课程成绩超过90分的人数。可以通过以下查询语句查看视图内容:
```sql
SELECT * FROM v_cnt;
```
相关问题
为表 sc创建一个视图s_grade(sno,sname,cou_cnt,avg_grade,fail_cnt),包括有各个学生学号、姓名、选修课程的门数、平均分及不及格门数。
创建视图的 SQL 语句如下:
```sql
CREATE VIEW s_grade AS
SELECT
sc.sno,
s.sname,
COUNT(DISTINCT sc.cno) AS cou_cnt,
AVG(sc.grade) AS avg_grade,
SUM(CASE WHEN sc.grade < 60 THEN 1 ELSE 0 END) AS fail_cnt
FROM
sc
JOIN student s ON sc.sno = s.sno
GROUP BY
sc.sno,
s.sname;
```
解释:
1. 创建视图的语法:`CREATE VIEW 视图名 AS SELECT 语句`。
2. 在 SELECT 语句中,我们需要从 sc 表中查询学生的学号和成绩,以及从 student 表中查询学生的姓名。
3. 使用 JOIN 连接 sc 表和 student 表,通过学号进行关联。
4. 聚合函数 COUNT 和 AVG 分别用于计算每个学生选修课程的门数和平均分。
5. 使用 SUM 函数结合 CASE 表达式计算每个学生不及格的课程数量。
6. 最后,使用 GROUP BY 子句按照学号和姓名进行分组,确保每个学生只出现一次。
利用sql语言为表 sc 创建一个视图 s_grade(sno,sname,cou_cnt,avg_grade,fail_cnt),包括有各个学生学号、 姓名、选修课程的门数、平均分及不及格门数。
好的,以下是用SQL语言为表sc创建s_grade视图的查询语句:
```
CREATE VIEW s_grade AS
SELECT s.sno, s.sname, COUNT(sc.cno) AS cou_cnt, AVG(sc.grade) AS avg_grade,
COUNT(CASE WHEN sc.grade < 60 THEN 1 END) AS fail_cnt
FROM student s, sc
WHERE s.sno = sc.sno
GROUP BY s.sno, s.sname;
```
以上查询语句会将学生表(student)和选课表(sc)联合起来,按照学生的学号和姓名对选修课程进行统计,包括选修的课程门数、平均分及不及格课程门数,最终生成一个名为s_grade的视图。