Oracle 错误合集

ORACLE 类似运行以下sql语句 总报 ORA-00937:不是单组分组函数 错误

select MARI_YN,GEND_CD,count(CASE WHEN substr(BIRT_YMD,0,4) BETWEEN '1996' and '2015' THEN '20岁以下' ELSE null END)"20岁以下",
count(CASE WHEN substr(BIRT_YMD,0,4) BETWEEN '1991' and '1995' THEN '20岁~25岁' ELSE null END)"20岁~25岁",
count(CASE WHEN substr(BIRT_YMD,0,4) BETWEEN '1986' and '1990' THEN '26岁~30岁' ELSE null END)"26岁~30岁"
from table_name;

原因:

这个错误一般是没有后面的GROUP BY才有的!
写成 from table_name GROUP BY MARI_YN,GEND_CD; 就没问题里了.

一般写sql语句时 当sql语句中含有 sum,max,count,min等这些聚合函数时,那么非聚合函数字段(在这里指 字段MARI_YN,GEND_CD) 都要放在 GROUP BY 后 分组排列
再通俗的说 group by后面的字段 不能少于查询中的非聚合函数字段.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值