SQL查询简单语句一个疑问求解,如图这是三张表

SQL查询简单语句一个疑问求解,如图这是三张表查询每个学生超过他选修课程平均成绩的课程号、课程名和成绩,并按照学号、课程号排序SELECTSno,Cno,Grade,FR... SQL查询简单语句一个疑问求解,如图这是三张表查询每个学生超过他选修课程平均成绩的课程号、课程名和成绩,并按照学号、课程号排序 SELECT Sno,Cno,Grade,
FROM SC x
WHERE Grade>=
(
SELECT AVG(Grade)
FROM SC y
WHERE y.Sno=x.Sno)
ORDER BY Sno ,cno ;这是我的语句,我发现题目还要求写出来课程名,那怎么添加上课程名,如何修改,求解
展开
 我来答
badkano
2018-04-10 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885365
团长

向TA提问 私信TA
展开全部
select b.sno,a.cno,a.cname,b.grade from course a,sc b,
(select sno,avg(grade) avg_grade from sc group by sno) c 
where a.cno=b.cno and b.sno=c.sno and b.grade>c.avg_grade
order by b.sno,b.cno
更多追问追答
追问
最后问一题,查询各系选修《数据库》课程的学生人数、最高分、最低分和平均成绩。
追答

看你想怎么显示了

select a.sdept 系别,count(*)人数,min(grade) 最低分,max(grade) 最高分,avg(grade) 平均分
from student a,course b,sc c where a.sno=c.sno and b.cno=c.cno and b.cname='数据库'
group by a.sdept
select a.sdept 系别,sum(case when a.sno=b.sno then 1 else 0 end) 人数,isnull(min(b.grade),0) 最低分,isnull(max(b.grade),0) 最高分,isnull(avg(b.grade),0) 平均分 from student a
left join
(select b.* from course a,sc b where a.cno=b.cno and a.cname='数据库') b
 on a.sno=b.sno group by a.sdept

分别运行,结果不同

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式