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 ...
随机推荐
- js悬浮、回到顶部
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python爬虫之基本类库
简单梳理一下爬虫原理: 1.发送请求 通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应. 2.获取响应内容 如果服务器能正常响应(正常 ...
- python编程基础之七
运算关系:也就是常说比较运算,返回值只有True, False == 判断是否相等 != 判断是否不相等 > ,< ,>= , <= 判断是否大于,小于,大于等于,小于 ...
- LeetCode_155-Min Stack
栈的实现,多加了一个最小值的获取 class MinStack { public: struct Node { int nNum; int nMinNum; Node* pNext; Node() { ...
- Python玩转人工智能最火框架 TensorFlow应用实践 ☝☝☝
Python玩转人工智能最火框架 TensorFlow应用实践 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 全民人工智能时代,不甘心只做一个旁观者,那就现在 ...
- 微信小程序前端样式WXSS书写
微信小程序前端样式WXSS书写 一. WXSS的简单介绍 WXSS(WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式. 与 CSS 相比,WXSS 扩展的特性有: ...
- python基础一(运算符/变量定义/数据类型)
一.运算符 1.算数运算符 (1)加(+) 注意:字符串与整数之间不能进行相加,需要通过str()或int()进行转换数据类型 整数与整数相加 >>> 1 + 1 2 >> ...
- Qt5教程: (8) 标准对话框和文件对话框
1. about对话框 包含头文件 #include <QMessageBox> 添加菜单项 QAction *p3 = pDialog->addAction("关于&qu ...
- Android Studio 1.5运行问题
Error:Unable to start the daemon process: could not reserve enough space for object heap.Please assi ...
- KMP算法复习笔记
KMP 算法 KMP 算法是一种改进的字符串匹配算法,KMP 算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的.具体实现就是实现一个next()函数,函数本身包含了 ...