SQL 查询 “查询学生成绩超过其选修课程平均成绩的课程号”

本数据库有三个表学生表(学生编号(主键),姓名,年龄,院系),课程表(课程编号(主键),课程名,先修课目),选课关系表(学生编号(主键),课程编号(主键),课程成绩)求“... 本数据库有三个表 学生表(学生编号(主键),姓名,年龄,院系),课程表(课程编号(主键),课程名,先修课目),选课关系表(学生编号(主键),课程编号(主键),课程成绩)
求 “查询学生成绩超过其选修课程平均成绩的课程号” 的SQL语句怎么写。
展开
 我来答
liaojielin
2012-04-27 · TA获得超过161个赞
知道答主
回答量:197
采纳率:0%
帮助的人:186万
展开全部
原来多表联合查询还可以用列与列之间进行比较。联合查询后,在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
flyingFish211
推荐于2018-03-11 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
你这个问题好拗口

学生成绩超过其选修课程平均成绩的课程号, 是只要一个学生的课程大于平均就可以了还是所有的?
更多追问追答
追问
这样理解的:查询某个课程号,这个课程号具有以下属性,选这个课程的学生所得本课程的分数 要超过 他选修的所有课程的平均分。
追答
问题就在这里了,

譬如课程1, 学生A所得课程的成绩超过了他选修的所有课程的平均分,如果学生B没有超过,那这个课程1符合条件么?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
unitech2010
2012-04-27 · TA获得超过1062个赞
知道小有建树答主
回答量:1025
采纳率:100%
帮助的人:892万
展开全部
select t1.* from 选课关系表 t1 where t1.课程成绩>
(select avg(t3.课程成绩) from 选课关系 t3 ,课程表 t2 where t2.课程编号=t3.课程编号 where t2.先修课目='选修')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
云计算懂管理的小司
2012-04-27 · TA获得超过1145个赞
知道小有建树答主
回答量:756
采纳率:100%
帮助的人:436万
展开全部
a-学生表;b-课程表;c-选课关系表;
-------------------------------------------
select b.课程号 课程号,c.课程成绩 课程成绩 from 学生表 a,课程表 b,选课关系表 c where c.课程成绩 >(select avg(c.课程成绩) from 选课关系表 c) and a.学生编号=c.学生编号;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邗启3V
2012-04-27 · TA获得超过7270个赞
知道大有可为答主
回答量:1413
采纳率:100%
帮助的人:1369万
展开全部
select r1.课程编号
from 课程表 r1
join 选课关系表 r2
on r1.课程编号 = r2.课程编号 and r2.课程成绩 >avg(课程成绩)
更多追问追答
追问
r1 r2 指的什么?
追答
课程表  的别名 r1
选课关系表 的别名 r2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式