SQL 查询 “查询学生成绩超过其选修课程平均成绩的课程号”
本数据库有三个表学生表(学生编号(主键),姓名,年龄,院系),课程表(课程编号(主键),课程名,先修课目),选课关系表(学生编号(主键),课程编号(主键),课程成绩)求“...
本数据库有三个表 学生表(学生编号(主键),姓名,年龄,院系),课程表(课程编号(主键),课程名,先修课目),选课关系表(学生编号(主键),课程编号(主键),课程成绩)
求 “查询学生成绩超过其选修课程平均成绩的课程号” 的SQL语句怎么写。 展开
求 “查询学生成绩超过其选修课程平均成绩的课程号” 的SQL语句怎么写。 展开
5个回答
展开全部
原来多表联合查询还可以用列与列之间进行比较。联合查询后,在where用选课表的成绩列 大于 选课表平均成绩。
student为学生表,class为课程表,selectclass为选课关系表。
select * from selectclass as t1,
(select avg(sc.classreult)as pingjun,sc.classID from selectclass as sc group by classid )as t2
where t1.classID=t2.classID and t1.classReult>t2.pingjun
student为学生表,class为课程表,selectclass为选课关系表。
select * from selectclass as t1,
(select avg(sc.classreult)as pingjun,sc.classID from selectclass as sc group by classid )as t2
where t1.classID=t2.classID and t1.classReult>t2.pingjun
展开全部
你这个问题好拗口
学生成绩超过其选修课程平均成绩的课程号, 是只要一个学生的课程大于平均就可以了还是所有的?
学生成绩超过其选修课程平均成绩的课程号, 是只要一个学生的课程大于平均就可以了还是所有的?
更多追问追答
追问
这样理解的:查询某个课程号,这个课程号具有以下属性,选这个课程的学生所得本课程的分数 要超过 他选修的所有课程的平均分。
追答
问题就在这里了,
譬如课程1, 学生A所得课程的成绩超过了他选修的所有课程的平均分,如果学生B没有超过,那这个课程1符合条件么?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select t1.* from 选课关系表 t1 where t1.课程成绩>
(select avg(t3.课程成绩) from 选课关系 t3 ,课程表 t2 where t2.课程编号=t3.课程编号 where t2.先修课目='选修')
(select avg(t3.课程成绩) from 选课关系 t3 ,课程表 t2 where t2.课程编号=t3.课程编号 where t2.先修课目='选修')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a-学生表;b-课程表;c-选课关系表;
-------------------------------------------
select b.课程号 课程号,c.课程成绩 课程成绩 from 学生表 a,课程表 b,选课关系表 c where c.课程成绩 >(select avg(c.课程成绩) from 选课关系表 c) and a.学生编号=c.学生编号;
-------------------------------------------
select b.课程号 课程号,c.课程成绩 课程成绩 from 学生表 a,课程表 b,选课关系表 c where c.课程成绩 >(select avg(c.课程成绩) from 选课关系表 c) and a.学生编号=c.学生编号;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select r1.课程编号
from 课程表 r1
join 选课关系表 r2
on r1.课程编号 = r2.课程编号 and r2.课程成绩 >avg(课程成绩)
from 课程表 r1
join 选课关系表 r2
on r1.课程编号 = r2.课程编号 and r2.课程成绩 >avg(课程成绩)
更多追问追答
追问
r1 r2 指的什么?
追答
课程表 的别名 r1
选课关系表 的别名 r2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询