在项目中遇到了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