选择列表中的列 ...... 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。

发布时间 2023-04-04 15:54:15作者: 空岛迷梦

在用 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

显示结果: