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

简介: 错误提示: 消息 8120,级别 16,状态 1,第 2 行 选择列表中的列 'Qiu.dbo.students.name' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。 解决方案: 如果 SELECT 子句 <select list> 中包含聚合函数,则 GROUP BY 将计算每个组的汇总值。指定 GROUP BY 时,选择列表中任何非聚合表达式内

错误提示:

消息 8120,级别 16,状态 1,第 2 行
选择列表中的列 'Qiu.dbo.students.name' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。

解决方案:

如果 SELECT 子句 <select list> 中包含聚合函数,则 GROUP BY 将计算每个组的汇总值。指定 GROUP BY 时,选择列表中任何非聚合表达式内的每个属性名都应包含在GROUP BY列表中,或者GROUP BY表达式必须与选择列表表达式完全匹配。

错误用法:

SELECT name,sex,SUM(age)
  FROM [Qiu].[dbo].[students]
  group by sex

更正后用法:

SELECT name,sex,SUM(age)
  FROM [Qiu].[dbo].[students]
  group by sex,name
使用Group By子句的时候,一定要记住下面的一些规则:
(1)不能Group By非标量基元类型的列,如不能Group By text,image或bit类型的列
(2)Select指定的每一列都应该出现在Group By子句中,除非对这一列使用了聚合函数;
(3)不能Group By在表中不存在的列;
(4)进行分组前可以使用Where子句消除不满足条件的行;
(5)使用Group By子句返回的组没有特定的顺序,可以使用Order By子句指定次序。

use Qiu
select sex,avg(age)
from students
group by sex
目录
相关文章
|
2月前
|
SQL 数据挖掘 数据库
|
4月前
|
SQL
sql语句按指定某个字段分组后删除重复数据只保留id最小/最大的一条数据
sql语句按指定某个字段分组后删除重复数据只保留id最小/最大的一条数据
68 0
|
5月前
|
SQL 存储 Oracle
为什么 GROUP BY 之后不能直接引用原表中的列
为什么 GROUP BY 之后不能直接引用原表中的列
41 1
|
5月前
|
SQL
SQL语句两个字段或多个字段同时order by 排序
SQL语句两个字段或多个字段同时order by 排序
832 0
|
存储 SQL 关系型数据库
mysql数据分组 group by 多条件分组但条件不并列的分析
mysql数据分组 group by 多条件分组但条件不并列的分析
619 0
GROUP BY 一个以上的列
GROUP BY 一个以上的列
93 1
|
SQL 大数据 开发者
SQL 语法--表特定语句--分组、排序、过滤 | 学习笔记
快速学习 SQL 语法--表特定语句--分组、排序、过滤
234 0
SQL 语法--表特定语句--分组、排序、过滤 | 学习笔记
|
.NET 开发框架
Linq 分组(group by)求和(sum)并且按照分隔符(join)分割列数据
转载:http://www.cnblogs.com/zq281660880/archive/2012/09/26/2704836.html 今天在使用linq处理一下需求时碰到一点小问题,特此记录。   需求:     按照品名相同的进行汇总,数量相加、表号按分号分割显示   1、组织...
1309 0
|
SQL
【SQL】根据一个字段分组求另一个字段的最大值,并带出其他字段
【SQL】根据一个字段分组求另一个字段的最大值,并带出其他字段
525 0
【SQL】根据一个字段分组求另一个字段的最大值,并带出其他字段
|
关系型数据库 MySQL 数据库
select distinct去掉重复查询结果|学习笔记
快速学习select distinct去掉重复查询结果
245 0