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 ;这是我的语句,我发现题目还要求写出来课程名,那怎么添加上课程名,如何修改,求解 展开
FROM SC x
WHERE Grade>=
(
SELECT AVG(Grade)
FROM SC y
WHERE y.Sno=x.Sno)
ORDER BY Sno ,cno ;这是我的语句,我发现题目还要求写出来课程名,那怎么添加上课程名,如何修改,求解 展开
1个回答
展开全部
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
分别运行,结果不同
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询