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后面的字段 不能少于查询中的非聚合函数字段.

猜你喜欢

转载自ymq267.iteye.com/blog/2247784