关于 ORA-00937不是单组分组函数的解决办法

Posted hellodev

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 ORA-00937不是单组分组函数的解决办法相关的知识,希望对你有一定的参考价值。

在项目中遇到了ora-00937 的问题,找了半天原来是聚合函数没有和group by 语句一起使用的原因,

select 列表项中除了包含聚合函数外,还包含了表的某些列,那么你将必须使用group by语句,否则语法通不过。

 

如 以下语法是编译不通过的

select j.d_jobid,count(p.d_lineid) as "num" ,
j.bdrq,j.downloaddate ,j.downloadname ,j.change_type
from b_mediumvoltagejob j,b_mediumvoltagejob_line p where
j.d_jobid=p.d_jobid and j.lxgd=1
因为select 语句中使用了聚合函数count,而且包含了d_jobid等表的其他列,那么这里必须使用group by分组函数。其实仔细想想原理还是很简单的,因为当你不使用group by 分组函数时,count函数没办法按照某一标准进行统计的,所以会报ora-00937错误。

 

 

结论:

select 列表项中除了包含聚合函数外,还包含了表的某些列,那么你将必须使用group by语句,
否则语法通不过。

 


————————————————
版权声明:本文为CSDN博主「xinglei200909931」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xinglei200909931/article/details/84617249

以上是关于关于 ORA-00937不是单组分组函数的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

ORA-00937: 不是单组分组函数,已在使用 group by

ORA-00937: "不是单组群函数"

ORA-00937: 不是单组组函数错误

包以失败状态结束。 ORA-00937 没那么容易

Oracle中遇到的错误

带有子查询的ORACLE单组功能错误[关闭]