Oracle“ORA-00979:不是GROUP BY 表达式”解决方式
今天在工作中碰到一个问题,用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 表达式”解决方式的更多相关文章
- Oracle报错#“ORA-01791: 不是 SELECTed 表达式”解决方法
今天遇到一个Oracle报错,写篇博客记录一下 简单看一下下面这个sql,这也查询是没报错的 select a.area_seq, a.area_name from t_unit_area a WHE ...
- Oracle报错:不是GROUP BY 表达式
报错:不是GROUP BY 表达式 实例:select sum(hwjz),rq from JcChargeInfo where 1=1 group by rq order by jcchargec ...
- Oracle Ora 错误解决方案合集
注:本文来源于 < Oracle学习笔记 --- Oracle ORA错误解决方案 > ORA-00001: 违反唯一约束条件 (.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发 ...
- Oracle ORA
ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 OR ...
- Oracle和MySQL分组查询GROUP BY
Oracle和MySQL分组查询GROUP BY 真题1.Oracle和MySQL中的分组(GROUP BY)有什么区别? 答案:Oracle对于GROUP BY是严格的,所有要SELECT出来的字段 ...
- 关于ORA-00979 不是 GROUP BY 表达式错误的解释
ORA-00979 不是 GROUP BY 表达式”这个错误,和我前面介绍的另外一个错误ORA-00937一样使很多初学oracle的人爱犯的. 我在介绍使用聚合函数中用group by来分组数据时特 ...
- [转]关于ORA-00979 不是 GROUP BY 表达式错误的解释
转自:https://www.cnblogs.com/vigarbuaa/archive/2012/06/25/2561225.html ORA-00979 不是 GROUP BY 表达式”这个错误, ...
- 报错:不是GROUP BY 表达式
oracle库中:group by后面必须加上你select后面所查询的所有除聚合函数之外的所有字段. 解决方法:将group by放入子查询中使用或者将select后面的所有查询字段放入group ...
- Oracle中With As 、Group By 语法
比如有下面三张表,用With as .Group By语法解决几个问题; with as : 可以用来创建临时表,作为过度的表: group by: 按照某个字段来分类: 对应字段如下: Sa ...
随机推荐
- C语言I博客作业03
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/8717 我在这个课程的目 ...
- 利用 SASS 简化 `nth-child` 样式的生成
考察如下的 HTML 片段,通过 CSS 的 nth-child() 伪选择器实现列表的颜色循环,比如每三个一次循环. <ul> <li>1</li> <li ...
- MongoDB系列(一):初步理解
一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 1.易用性 1)MongoDB是一款面向文档的数据库,而不是关系型数据库,因此而有着更好的扩展性. 2)通过在文档中嵌入文档和数组, ...
- Vue入门教程 第三篇 (条件与循环)
v-if语法(条件) 符合条件时显示(渲染)某一元素. <div id="app"> <div v-if="ok"> <h1> ...
- bugku 一个普通的压缩包
压缩包打不开,用winhex打开压缩包,发现头文件是zip的,将后缀改为zip,成功解压. 打开发现还是个压缩包,而且打不开,提示secret.png损坏,使用winhex打开. 将a8 3c 7a ...
- Linux之常用命令II
一.VI编辑器 1) 概述 ◆ Visual Interface(可视化接口): ◆ 类似Windows中的记事本,比记事本强大: ◆ VIM相对于VI做了哪些提升 -VIM支持多级撤销 -VI ...
- Javascript实现10种排序算法
1.冒泡排序: 比较相邻的两个数,如果前一个数大于后一个数,就将这两个数换位置.每一次遍历都会将本次遍历最大的数冒泡到最后.为了将n个数排好序,需要n-1次遍历.如果某次遍历中,没有调整任何两个相邻的 ...
- vue+element 实现商品sku效果
在网上搜索了很久,没有发现合适sku编辑的文章,只能自己写一个vue+element 的sku编辑功能.实现的效果如下图 除成本.售价.库存.货号这几个写死的属性外,可自行添加/删除商品属性,自行添加 ...
- 1、Struts2基本入门
一.了解了这几个主要的优点,会促使你考虑使用Struts2 : 1.POJO表单及POJO操作 - Struts2 去除掉了Struts框架中的Action Forms部分.在Struts2框架下,你 ...
- Vuex使用总结
Vuex 是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. Vuex的五个核心概念 ...