Oracle报错:不是单组分组函数解决

本文解析了在SQL查询中使用分组函数时常见的错误,包括如何正确使用group by语句,以及在Oracle和MySQL中分组函数的使用差异。通过实例说明了分组函数的正确用法,避免‘不是单组分组函数’的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
报错:不是单组分组函数
实例:select deptno,count(empno) from emp;
报错:不是单组分组函数

原因:

1、如果程序中使用了分组函数,则有两种情况可以使用:

程序中存在group by,并指定了分组条件,这样可以将分组条件一起查询出来

改为:

select deptno,count(empno) from emp group by deptno;

如果不使用分组的活,则只能单独使用分组函数

改为:

select count(empno) from emp;

2、可以使用多个分组函数,不仅在Oracle中使用,在mysql中也同样适用,例如在Oracle中使用如下:

 select count(*),avg(sal) from emp group by deptno;

结果:
在这里插入图片描述

3、在使用分组函数的时候,不能出现分组条件之外的字段,当然分组函数和分组属性使用的不是一个表中的是可以的,Oracle中要求的比较严格,不过在mysql中没有那么严格,如果出现分组条件之外的字段,显示的是分组中的第一个符合条件的字段值,例如在mysql中执行:

select deptno,ename,count(*) from emp group by deptno;

mysql执行结果:
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值