Oracle“ORA-00979:不是GROUP BY 表达式”解决方式

Oracle SQL错误码及其含义 Oracle SQL错误码,以下是一些常见的Oracle SQL错误码及其含义: 阅读详情

原来oracle比其他数据库如mysql的group by语法要求严。之前学习时,一直都是使用MySQL的,使用group by 很随意,然后就这样随意到了oracle上,就报错了…..真是醉了啊。。。

注:在select中出现的列必须全部出现在group by的后面
摘录:
ORA-00979 不是 GROUP BY 表达式”这个错误,和我前面介绍的另外一个错误ORA-00937一样使很多初学oracle的人爱犯的。
我在介绍使用聚合函数中用group by来分组数据时特别说明了select 列表项中不存在的列可以出现在group by的列表项中,但反过来就不行了,在select列表项中出现的列必须全部出现在group by后面(聚合函数除外)

但一些朋友经常爱把select 列表项的中列忘了写在group by中。于是就出现了以上的错误ORA-00979 不是 GROUP BY 表达式。

Oracle的中文错误提示信息翻译得非常不到位,面对着不是 GROUP BY 表达式很多朋友摸不着头脑,不知道oracle在说什么。

例如下面的例子就会出现这个错误:

SQL> select deptno,job,avg(sal)

2 from emp

3 group by deptno;

select deptno,job,avg(sal)

*

ERROR 位于第 1 行:

ORA-00979: 不是 GROUP BY 表达式

这里就是因为在select 列表像中出现了像deptno和job,而在group by中并没有出现的缘故。

以上的错误纠正为:

Select deptno,job,avg(sal) from emp

Group by deptno,job;

彻底解析ORA-00979:非GROUP BY表达式错误及实战解决方案 根据 ISO/IEC 9075-2:2011(SQL/Foundation),中的每一个若不属于(即聚合函数),则必须满足以下条件之一:.”这意味着:任何出现在 SELECT 中的非聚合列,都必须精确出现在 GROUP BY 子句中。这是 SQL 标准强制要求的语义完整性规则。此外,标准还允许通过实现表达式级别的匹配,前提是表达式完全相同且可确定性求值。概念说明统计粒度决定GROUP BY字段的核心依据,通常对应报表的“每一行代表什么” 阅读详情

相关推荐

S4 Hana SD -信贷管理 - 02

在S4版本中,客户的信用管理数据在事务代码BP维护,业务伙伴角色是UKM000。在维护过程中,我们并不能直接输入信贷控制范围这个组织架构,而是需要输入一个信用段,并且在信用段的维度下去维护相应信用管理数据。对于信用段,可以分为主信用段(信用段是0000)和其他临时信用段,我们可以通过配置把次级信用段的客户信贷负债汇总到主信用段。当然,在后台也有配置,会把信用段和信贷控制范围这两者进行关联.3.2SPROIMG > 财务供应链管理 > 信用管理 > 信贷风险监视 > 主数据 > 创建信用段。

weixin_46525734的博客 1965

Oracle系列:ORA-00979不是GROUP BY表达式

用Oracle进行查询时一直报错ORA-00979不是GROUP BY表达式,后面发现是因为Oracle不同于我之前学的MySQL和SQL,主要有以下要注意的: 1、要把所有的非聚合字段加入group by中 非聚合指没有进行计算的,聚合指进行计算的,比如sum(某列名)等就不用加进去 在select中出现的列必须全部出现在group by的后面,但在group by里出现的列不必都出现在select 中 2、在group by 中不能用别名 举个例子: 我的数据表里主要有这些字段 输入代码1

哇哇哇,真的学到了!!! 2万+

基于陀螺仪航向反馈的轮式机器人PID直线控制

航向角控制是移动机器人实现稳定直线运动的基础技术,其本质是通过实时感知机体朝向偏差并动态调节驱动输出,以抵消机械不对称、轮径误差等固有扰动。该方法依托陀螺仪测量角速度并积分解算航向角,结合离散化PID算法生成补偿性PWM指令,在嵌入式平台(如STM32)上构建低延迟闭环。相比依赖编码器的速度闭环,它规避了轮径标定与安装偏心等误差源,显著提升低成本平台的工程鲁棒性与部署效率。典型应用场景包括教育机器人直线循迹、AGV基础导航模块开发及IMU-PID融合控制原型验证。

web39explorer的博客 1110

oracle报错ora00979,由ORA-00979错误发现ORACLE一个BUG

今天测试TOM的9i&10g编程艺术中检查外键是否建立索引的SQL,竟然报错。我是在PL/SQL DEVELOPER工具上运行的。SQL如下:SELECT TABLE_NAME, CONSTRAINT_NAME, CNAME1 || NVL2(CNAME2, ', ' || CNAME2, NULL) ||NVL2(CNAME3, ', ' || CNAME3, NULL) || NVL2...

weixin_39637545的博客 919

winget安装提示:执行此命令时发生意外错误: InternetOpenUrl() failed. 0x80072efd

当我们使用Winget包管理器安装应用,提示错误:执行此命令时发生意外错误: InternetOpenUrl() failed. 0x80072efd 该怎么处理呢?请听我娓娓道来。

Linux I Tell U 8136

Monorepo与pnpm:前端项目管理的完美搭档

pnpm又称 performant npm,翻译过来就是高性能的npm。Monorepo是一种项目开发与管理的策略模式,它代表"单一代码仓库"(Monolithic Repository)。在Monorepo模式中,所有相关的项目和组件都被存储在一个统一的代码仓库中,而不是分散在多个独立的代码仓库中,这些项目之间还可能会有依赖关系。

m0_68271787的博客 2562

ORA-00979: not a GROUP BY expression报错处理

环境:Oracle Database 11gR2(11.2.0.2) on Linux故障现象:执行Group By语句报错ORA-00979。具体的SQL如下:SQL>selecta.d1,a.EXIT_typ...

cuijuelu4502的博客 1843

hadoop 切片机制详解

hadoop切片机制详解

congge 1万+

关于Oracle报错ORA-00979不是GROUP BY表达式

关于Oracle报错ORA-00979不是GROUP BY表达式做一个数据库查询,遇到了一个ORA-00979不是GROUP BY表达式的错误,想了好久,试了好久,都没有用处,后来看到这篇http://blog.163.com/wkyuyang_001/blog/static/10802122820091745135193/博客。原来oracle和其他数据库的差别这么大。之前学习时,一直都是使用My

jn_aswq的专栏 8万+

YOLOv8 改进:使用 MobileNetV3 轻量化架构改进特征提取网络

通过使用 MobileNetV3 作为 YOLOv8 的特征提取器,能够显著降低模型复杂度和运行时资源消耗,同时在一定程度上保持检测精度。这种方法特别适合需要高效计算的边缘设备和嵌入式系统。

走向CTO的路上... 1275

Attention优化|2w字原理&图解: 从Online-Softmax到FlashAttention V1/V2/V3

本文通过原理分析和图解的方式,通俗易懂地FlashAttention系列算法。FlashAttention V1/V2在LLM领域的应用已经非常广泛,相关的论文也反复读了几遍。FA1和FA2论文非常经典,都推荐读一下(不过FA2论文中公式错误不少本文大约1.8w字,包括以下内容:0x07 分布式训推使用FlashAttention0x09 FlashAttention中MQA/GQA以及Causal Mask处理。

具身机器人和通用AI 5232

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

ORA-00979 不是 GROUP BY 表达式 ” 这个错误,和我前面介绍的另外一个错误 ORA-00937 一样使很多初学 oracle 的人爱犯的。 我在介绍使用聚合函数中用group by来分组数据时特别说明了select 列表项中不存在的列可以出现在group by的列表项中,但反过来就不行了,在select列表项中出现的列必须全部出现在group by后面(聚合函数除外) 但一些朋友经常爱把select 列表项的中列忘了写在group by中。于是就出现了以上的错误ORA-00979不是

weixin_40460171的博客 1722

基于STM32设计的环境监测系统(华为云IOT)_300

随着空气污染问题日益严峻,环境空气质量的监测变得愈加重要。为了解决这一问题,本项目设计并实现了一款基于STM32的空气质量监测设备,能够实时监测空气中的温湿度、二氧化碳浓度和甲醛浓度,并通过OLED显示屏展示数据。此外,设备支持通过WIFI模块将数据上传至云端,用户可以通过手机APP或Windows上位机查看实时数据。设备采用MQTT协议与华为云IOT物联网服务器进行数据通信,确保数据的实时性和可靠性。本项目还结合了低功耗设计和高灵敏度传感器,使得设备能够高效稳定地运行,并实现远程监控功能。

695

【Oracle报错系列】ORA-00979不是GROUP BY表达式

Oracle报错ORA-00979不是GROUP BY表达式 用Oracle进行查询时一直报错ORA-00979不是GROUP BY表达式,后面发现是因为Oracle不同于我之前学的MySQL和SQL,主要有以下要注意的: 1、要把所有的非聚合字段加入group by中 非聚合指没有进行计算的,聚合指进行计算的,比如sum(某列名)等就不用加进去 在select中出现的列必须全部出现在group by的后面,但在group by里出现的列不必都出现在select 中 2、在group by 中不能用别名 举

weixin_42105460的博客 2848

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ORA-00979不是GROUP BY表达式

问题 对于常见在select中出现的列没有全部出现在group by的后面这种原因就不再进行细说了,现说下我碰到的比较特殊的情况。在Oracle的11.2.0.1.0版本上执行下面语句报ORA-00979不是GROUP BY表达式错误 select substr(a.empno,1,4) as year,count(1) from (select * from scott.emp) a gr...

前行的博客 1468

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

oracle:ORA-00979 不是 GROUP BY 表达式”

具体的解释,见之前我看的那篇博客:  摘录:  ORA-00979 不是 GROUP BY 表达式”这个错误,和我前面介绍的另外一个错误ORA-00937一样使很多初学oracle的人爱犯的。  我在介绍使用聚合函数中用group by来分组数据时特别说明了select 列表项中不存在的列可以出现在group by的列表项中,但反过来就不行了,在select列表项中出现的列必须全部出现在group...

qq_39440012的博客 3572

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

ErrorMessage: ORA-00979: 不是 GROUP BY 表达式

记录一次oracle报错:ErrorMessage: ORA-00979: 不是 GROUP BY 表达式 oracle与其他数据库差别 原因:select列表项中不存在的列可以出现在group by的列表项中,但反过来就不行了,在select列表项中出现的列必须全部出现在group by后面(聚合函数除外) 解决:在select中出现的列必须全部出现在group by的后面 ...

weixin_30755393的博客 355

【专解】Oracle中GROUP BY的用法

我们先来看下问题吧 错误:ORA-00979: 不是 GROUP BY 表达式 00979. 00000 - “not a GROUP BY expression” 答案 group by语句中select指定的字段必须是“分组依据字段”。 group by是分组查询,也就是说你前面除了聚合函数外我在group by后面必须要指定,否则就报错。你想想,我按job进行分组,但是ename有很多不同的值,那这样不就是一对多了吗上图来看: 查询的结果不就是一对多吗 右边如何变成一条呢,也就是一对一,那这里

打不倒的程序猿 1万+

oracle报错ora00979,关于Oracle报错ORA-00979不是GROUP BY表达式

关于Oracle报错ORA-00979不是GROUP BY表达式做一个数据库查询,遇到了一个ORA-00979不是GROUP BY表达式的错误,想了好久,试了好久,都没有用处,后来看到这篇http://blog.163.com/wkyuyang_001/blog/static/10802122820091745135193/博客。原来oracle和其他数据库的差别这么大。之前学习时,一直都是使用M...

weixin_39796878的博客 694

ORA-00979 不是 GROUP BY 表达式

ORA-00979 不是 GROUP BY 表达式”这个错误,和我前面介绍的另外一个错误ORA-00937一样使很多初学oracle的人爱犯的。 我在介绍使用聚合函数中用group by来分组数据时特别说明了select 列表项中不存在的列可以出现在group by的列表项中,但反过来就不行了,在select列表项中出现的列必须全部出现在group by后面(聚合函数除外) 但一些朋友经常爱把...

weixin_41855662的博客 515

在oracle里报错:ORA-00979: 不是 GROUP BY 表达式

orcal 使用聚合函数中用group by来分组数据时特别说明了select 列表项中不存在的列可以出现在group by的列表项中,但反过来就不行了,在select列表项中出现的列必须全部出现在group by后面(聚合函数除外) 例如下面的例子就会出现这个错误: SQL> select deptno,job,avg(sal) 2 from emp 3 group b

yasuuu.taobao.com 4060

oracle 11.2.0.1版本sql执行报ora-00979:不是group by表达式错误解决

尽量宽恕别人,而绝不要原谅自己-西拉斯(古罗马) oracle 11.2.0.1版本中,sql语句中存在关联查询并结果中存在group by和order by条件时,执行将报ora-00979错误。经本人反复查看语句,确认语句没写错,并在11.2.0.4版本中执行语句,发现未报错。由此怀疑应该是版本bug问题。后经MOS查看,确认了bug。 1,基本报错 在本地...

tpc4289的专栏 2938

Java java.sql.SQLSyntaxErrorException: ORA-00979: 不是 GROUP BY 表达式问题解决

问题描述: java.sql.SQLSyntaxErrorException: ORA-00979: 不是 GROUP BY 表达式 问题分析: 1、Oracle数据库使用group by分组查询时,select语句所带的字段不是group by语句所带的字段。 解决办法:select子句后的字段必须来自group by后的分组字段(聚合函数除外)。 ...

旭东怪的博客 2111
上一篇: Js onclick传递对象参数(传递一行数据时)错误:uncaught SyntaxError: Unexpected identifier
下一篇: plsql手动修改数据
qq_34412985
博客等级 码龄11年 143粉丝 983原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值