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

标签: sql server bug
11人阅读 评论(0) 收藏 举报
分类:


今天进行数据库查询是分组时间出现了:

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

的错误,写的sql语句如下:

select o.goods_id ,g.goods_name,sum(goods_number) total

from orders o left join goods g

on o.goods_id=g.goods_id

group by o.goods_id

在网上查询后有猿友说:其实sql语句的执行顺序不是你写代码的顺序,是先group by 再select的,如果group by中都没有出现这列,select的时候肯定报错。


即指定 GROUP BY 时,选择列表中任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY表达式必须与选择列表表达式完全匹配

最后SQL语句如下:

select o.goods_id ,g.goods_name,sum(goods_number) total

from orders o left join goods g

on o.goods_id=g.goods_id

group by g.goods_name,o.goods_id

运行正常。

无论select 后面跟了几个字段,除了聚合函数如 count sum avg等之外,都要在

group by后出现,否则就会报上述错误。




查看评论

高性能架构实战与案列解析

我个人一直从事架构设计工作,根据在百度、58同城等六年内满足海量用户请求的架构设计经验,带领大家一起学习互联网的高可用架构如何玩?理论结合实践,并重点讲述案例,深入剖析架构设计的高可用性。并一同探讨如何满足贵企业的高可用架构设计。来吧,一起揭开“高可用架构设计与实践”的神秘面纱!
  • 2018年04月13日 15:05

关于因为该列没有包含在聚合函数或 GROUP BY 子句中

参考:http://blog.csdn.net/wlf535944903/article/details/5576287
  • jueshengtianya
  • jueshengtianya
  • 2014-09-23 17:52:03
  • 1585

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

T-SQL核心语句形式: SELECT     --指定要选择的列或行及其限定  [INTO ]      --INTO子句,指定结果存入新表 FROM      --FROM子句,指定...
  • liujiayu2
  • liujiayu2
  • 2015-06-01 16:12:56
  • 1676

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

错误提示: 消息 8120,级别 16,状态 1,第 2 行 选择列表中的列 'Qiu.dbo.students.name' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。 解决...
  • u011331383
  • u011331383
  • 2015-01-16 15:52:12
  • 8261

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

错误见图, 原因是包含SUM等聚合函数的查询语句,select 后面的字段必须要么出现在groupby中,要么出现在函数里。 按以下更改成功。 SELECT     dbo.Newquo...
  • qq_28441193
  • qq_28441193
  • 2017-08-03 15:32:19
  • 485

在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中

在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。 s sql2005可执行,sql2000不可执行 select CONVERT(datetime,(CO...
  • dogquill
  • dogquill
  • 2015-07-15 23:32:03
  • 1014

ORDER BY 子句中的列 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中

可能原因是:SELECT语句中有多个ORDER BY .
  • jing_xin
  • jing_xin
  • 2008-05-21 16:41:00
  • 5809

sql语句学习笔记(10)-group by(因为该列没有包含在聚合函数或 GROUP BY 子句中。聚合函数不能出现在where中)

捐款表tb_donation的结构如下:id          name          direction         amount1            a                ...
  • chengzi120
  • chengzi120
  • 2010-06-02 17:13:00
  • 9401

group by函数

group by 後面的字段列表必须包含select 列表中非聚合函数的字段如select id,name,type,count(*) from A group by id,name,type; 其中...
  • zl_shitou
  • zl_shitou
  • 2018-01-16 14:28:21
  • 39

SQL---该列没有包含在聚合函数或 GROUP BY 子句中

解决方式有2种:from语句中子查询 根据路测ATU数据表,查询服务小区参考信号接收功率RSRP的均值大于-70的小区。select cellid, avg_rsrp from ( se...
  • u012319493
  • u012319493
  • 2017-06-29 10:12:54
  • 417
    个人资料
    持之以恒
    等级:
    访问量: 672
    积分: 384
    排名: 20万+
    文章分类
    文章存档
    最新评论