求大神给解答一下,非常感谢!

selectsnoas学生ID,(selectscorefromSCwhereCno=101)as计算机组成原理,(selectscorefromSCwhereCno=1... select sno as 学生ID ,
(select score from SC where Cno=101)as 计算机组成原理 ,
(select score from SC where Cno=102)as 日语,
(select score from SC where Cno=103)as 数据库 ,
COUNT (*)as 有效课程数,AVG(score)as 平均成绩
from SC
group by sno
order by AVG(score) desc这条语句执行的时候 提示(子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的)
为什么用下面的执行就可以 ,语句中的sc.sno=t.sno 起到了什么作用
select sno as 学生ID ,
(select score from SC where sc.sno=t.sno and Cno=101)as 计算机组成原理 ,
(select score from SC where sc.sno=t.sno and Cno=102)as 日语,
(select score from SC where sc.sno=t.sno and Cno=103)as 数据库 ,
COUNT (*)as 有效课程数,AVG(score)as 平均成绩
from SC as t
group by sno
order by AVG(score) desc
展开
 我来答
johnney12
推荐于2016-06-02 · TA获得超过605个赞
知道小有建树答主
回答量:991
采纳率:55%
帮助的人:380万
展开全部
我不懂数据库,晓得点点编程,大概跟你解释下:
该数据库中有学号,有课程号,还有分数。
当学号、课程号都指明的时候,分数就是一定的了。
第一部分中,from SC where Cno=101,只是表示从sc中选课程号=101的,那么学生有很多了,所以返回的值不只一个。
第二部分中from SC where sc.sno=t.sno and Cno=101表示查询了学生号=t,课程号=101,这样出来的结果就一个。查出的AVG(score)就是所有学号=t的所有成绩的平均值。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式