0


10-23 查询平均成绩以上的课程(MSSQL)

本题目要求编写SQL语句,
查询每个同学超过他选修的平均成绩的课程。

请使用:
1)用相关子查询实现
2)使用派生表实现。

表结构:

请在这里写定义表结构的SQL语句。例如:

-- 课程表
CREATE TABLE cou (
cno char(4) NOT NULL,
cname nvarchar(30) NOT NULL,
credit smallint DEFAULT NULL,
ptime char(5) DEFAULT NULL,
teacher nvarchar(10) DEFAULT NULL,
PRIMARY KEY ( cno )
);
-- 学生选课成绩表
CREATE TABLE sc (
sno char(4) NOT NULL, -- 学生学号
cno char(4) NOT NULL, -- 课程号
grade decimal(4,1) DEFAULT NULL,
PRIMARY KEY ( sno , cno ),
CONSTRAINT fk_sc_cno FOREIGN KEY ( cno ) REFERENCES cou ( cno )
)

表样例

请在这里给出上述表结构对应的表样例。例如

cou

表:

cou.JPG

sc

表:

sc.JPG

输出样例:

请在这里给出输出样例。例如:

l220.JPG

思路:

将sc表和cou表连接起来,然后where条件为grade大于平均成绩

select a.sno 学号,cou.cname 课程名,a.grade 成绩
from sc a join cou
on a.cno=cou.cno
where a.grade >
(select avg(b.grade) from sc b where a.sno=b.sno) 
order by grade
标签: 数据库 mysql sql

本文转载自: https://blog.csdn.net/qq_45481523/article/details/132451489
版权归原作者 THK-J 所有, 如有侵权,请联系我们删除。

“10-23 查询平均成绩以上的课程(MSSQL)”的评论:

还没有评论