今天在工作中碰到一个问题,用group by 语句进行分组时出现ORA-00979错误。

代码如下:

select R.ORDER_NO,
R.PRODUCT_CODE,
R.REGION_NO,
R.ORGAN_NEW_NO,
R.ORGAN_NAME,
R.ERROR_TYPE,
R.SALE_DISCOUNT,
R.SALE_NUM,
R.REMARK,
DECODE(R.ERROR_TYPE,
'',
'数量异常',
'',
'折扣异常',
'',
'提前销售') ERROR_TYPE_DES,
A.REGION_NAME REGION_NAME,
P.PUTONSALE_DATE PUTONSALE_DATE,
P.REMARK PRODUCT_LEVEL,
P.SALE_DATE SALE_DATE
from U_MD_WX2.ITSC_MSG_ABNORMAL_RECORD R,
U_MD_WX2.ITSC_PUTONSALE_INFO P,
U_MD_WX2.ITSC_AREA_CONFIG A
WHERE R.REGION_NO = A.REGION_NO
and R.PRODUCT_CODE = P.PRODUCT_CODE
group by R.ORDER_NO,
R.PRODUCT_CODE,
R.REGION_NO,
R.ORGAN_NEW_NO,
R.ORGAN_NAME,
R.ERROR_TYPE,
R.SALE_DISCOUNT,
R.SALE_NUM,
DECODE(R.ERROR_TYPE,
'',
'数量异常',
'',
'折扣异常',
'',
'提前销售'),
A.REGION_NAME,
P.PUTONSALE_DATE,
SALE_DATE

代码

运行时出现以下错误:

经自己排查后,发现是group by后面缺少字段。

本以为,查询所有字段,然后按照其中几个字段进行分组。。。

仔细想想后,我太傻了,查询所有字段怎么可用只用部分字段进行分组,又没有使用聚合函数。

正确的方式应该是查询多少字段,group by 后面就要加上多少字段。

正确的代码如下:

select R.ORDER_NO,
R.PRODUCT_CODE,
R.REGION_NO,
R.ORGAN_NEW_NO,
R.ORGAN_NAME,
R.ERROR_TYPE,
R.SALE_DISCOUNT,
R.SALE_NUM,
R.REMARK,
DECODE(R.ERROR_TYPE,
'',
'数量异常',
'',
'折扣异常',
'',
'提前销售') ERROR_TYPE_DES,
A.REGION_NAME REGION_NAME,
P.PUTONSALE_DATE PUTONSALE_DATE,
P.REMARK PRODUCT_LEVEL,
P.SALE_DATE SALE_DATE
from U_MD_WX2.ITSC_MSG_ABNORMAL_RECORD R,
U_MD_WX2.ITSC_PUTONSALE_INFO P,
U_MD_WX2.ITSC_AREA_CONFIG A
WHERE R.REGION_NO = A.REGION_NO
and R.PRODUCT_CODE = P.PRODUCT_CODE
group by R.ORDER_NO,
R.PRODUCT_CODE,
R.REGION_NO,
R.ORGAN_NEW_NO,
R.ORGAN_NAME,
R.ERROR_TYPE,
R.SALE_DISCOUNT,
R.SALE_NUM,
R.REMARK,
DECODE(R.ERROR_TYPE,
'',
'数量异常',
'',
'折扣异常',
'',
'提前销售'),
A.REGION_NAME,
P.PUTONSALE_DATE,
P.REMARK,
SALE_DATE

代码

Oracle基础还要补啊。

Oracle“ORA-00979:不是GROUP BY 表达式”解决方式的更多相关文章

  1. Oracle报错#“ORA-01791: 不是 SELECTed 表达式”解决方法

    今天遇到一个Oracle报错,写篇博客记录一下 简单看一下下面这个sql,这也查询是没报错的 select a.area_seq, a.area_name from t_unit_area a WHE ...

  2. Oracle报错:不是GROUP BY 表达式

    报错:不是GROUP BY 表达式 实例:select sum(hwjz),rq from JcChargeInfo where 1=1  group by rq order by jcchargec ...

  3. Oracle Ora 错误解决方案合集

    注:本文来源于 < Oracle学习笔记 --- Oracle ORA错误解决方案 > ORA-00001: 违反唯一约束条件 (.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发 ...

  4. Oracle ORA

    ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 OR ...

  5. Oracle和MySQL分组查询GROUP BY

    Oracle和MySQL分组查询GROUP BY 真题1.Oracle和MySQL中的分组(GROUP BY)有什么区别? 答案:Oracle对于GROUP BY是严格的,所有要SELECT出来的字段 ...

  6. 关于ORA-00979 不是 GROUP BY 表达式错误的解释

    ORA-00979 不是 GROUP BY 表达式”这个错误,和我前面介绍的另外一个错误ORA-00937一样使很多初学oracle的人爱犯的. 我在介绍使用聚合函数中用group by来分组数据时特 ...

  7. [转]关于ORA-00979 不是 GROUP BY 表达式错误的解释

    转自:https://www.cnblogs.com/vigarbuaa/archive/2012/06/25/2561225.html ORA-00979 不是 GROUP BY 表达式”这个错误, ...

  8. 报错:不是GROUP BY 表达式

    oracle库中:group by后面必须加上你select后面所查询的所有除聚合函数之外的所有字段. 解决方法:将group by放入子查询中使用或者将select后面的所有查询字段放入group ...

  9. Oracle中With As 、Group By 语法

    比如有下面三张表,用With as  .Group By语法解决几个问题; with as :  可以用来创建临时表,作为过度的表: group by:   按照某个字段来分类: 对应字段如下: Sa ...

随机推荐

  1. 开发一个带UI的库(asp.net core 3.0)

    在GitHub上有个项目,本来是作为自己研究学习.net core的Demo,没想到很多同学在看,还给了很多星,所以觉得应该升成3.0,整理一下,写成博分享给学习.net core的同学们. 项目名称 ...

  2. 引入外部js

    引入外部js应该使用完整标签<script></script>,而使用单标签<script src=“”/>是错误的

  3. 浅析MVC Pattern

    一.前言 最近做CAD插件相关的工作,用到了一些模式,解决对应场景的问题. 比如插件的运行实例上使用Singleton.实例内部使用了MVC(Strategy and Observer ). 针对CA ...

  4. XCTF-CAT

    果然还是我太菜了呜呜呜,这道题仍然是没有自己做出来.哎. 这一道用的并不是PHP的环境,而是用Python中的Django编写的. 记得做过类似的一道题目.来源于MOCTF中的网站扫描器,当时做完后其 ...

  5. nginx的负载均衡实战

    前言 nginx是一个高性能的HTTP和反向代理的服务器.它有三个最基本的功能,一是当做web服务器.二是作为反向代理服务器.三是提供负载均衡(在反向代理基础上),由于它占有内存小,并发能力强,所以在 ...

  6. vodevs3031 最富有的人

    在你的面前有n堆金子,你只能取走其中的两堆,且总价值为这两堆金子的xor值,你想成为最富有的人,你就要有所选择. 输入描述 Input Description 第一行包含两个正整数n,表示有n堆金子. ...

  7. 数据结构(java)

    数据结构1.什么是数据结构?数据结构有哪些? 数据结构是指数据在内存中存放的机制. 不同的数据结构在数据的查询,增删该的情况下性能是不一样的. 数据结构是可以模拟业务场景. 常见的数据结构有:栈,队列 ...

  8. F#周报2019年第42期

    新闻 TypeShape的性能 .NET Core 3.0包含.NET Framework API移植项目 宣告.NET Core 3.1预览版1 .NET Core 3.1预览版1中ASP.NET ...

  9. .net工作流引擎ccflow开发平台属性功能的隐藏显示介绍

    关键字: 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 表单引擎 工作流功能说明  工作流设计 工作流快速开发平台   业务流程管理   bpm工作流系统  java工 ...

  10. MOOC python笔记(三) 序列容器:字符串、列表、元组

    容器概念 容器是Python中的重要概念,分为有序与无序. 有序容器也称为序列类型容器,如:字符串.列表. 通用序列容器操作 容器连接+ 加号可以把两个序列连接成一个更大的容器,相加后两个序列的值并不 ...