level 6
SELECT class ,Score.sno,AVG(Degree) AS avg_degree
FROM Student ,Score
WHERE Student.sno = Score.sno
AND Student.class = '95033';
以上为代码,去掉,AVG(Degree) AS avg_degree能够正常查询
以下为报错信息
消息 8120,级别 16,状态 1,第 21 行
选择列表中的列 'Student.class' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
2019年01月04日 07点01分
1
level 6
今天刚学SQL Server,目前在看SQL 必只必会,并一遍在做网上的SQL经典题
麻烦路过的大佬指点以下,谢谢
2019年01月04日 07点01分
3
level 1
AVG,MIN,MAX这些都是聚合函数,需要在group by 中使用;简单点理解就是你的平均分是针对的哪些数据进行平均的,要给它指出来,比如group by Student.class 就是求的班级的平均分,它的用法就是先分组,再查询出数据,所以你要得到的数据必须包含在组内,比如group by grade,class 先按年级分组,再按班组分组,再求班级的平均成绩
当然,按照你的语句,我想你要查询的是班级的平均值,那么,你直接
select avg(degree) from …… where ...就可以了,这样是默认所有的数据在一个组内
2019年01月13日 12点01分
4
谢谢大佬科普
2019年01月13日 22点01分