在用 SQL server 对表中的数据进行查询的过程中,出现如下错误:
消息 8120,级别 16,状态 1,第 27 行
选择列表中的列 '......' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
其目的是因为 select 语句中包含聚合函数,因为聚合函数是对一组值进行操作,所以它通常与 select 语句的 group by 子句一起使用。group by 子句将结果集划分为值分组,而聚合函数为每个分组返回单个值。
学生表Student:
成绩表SC:
查询学生的平均成绩:
错误代码:
select s.Sno,s.Sname,avg(Grade) from Student as s
inner join SC as sc on s.Sno=sc.Sno
group by s.Sno
显示结果:
或者
select s.Sno,s.Sname,avg(Grade) from Student as s
inner join SC as sc on s.Sno=sc.Sno
group by s.Sname
显示结果*
改正后的代码:
select s.Sno,s.Sname,avg(Grade) from Student as s
inner join SC as sc on s.Sno=sc.Sno
group by s.Sno,s.Sname
显示结果: