我有这样的查询,O_ID数据类型为VARCHAR,f_units数据类型为Number
我在下面做了避免零除数错误的操作,当我这样做时我仍然收到错误ORA-01476:当我为语句加上整个情况的总和时,除数等于零,然后它说功能太深了。
select O_ID,SUM(F_UNITS),
CASE WHEN SUM(F_UNITS) <> 0 THEN sum(cast(f_units as float)) / sum(cast(sum(f_units ) as float)) over (partition by O_ID) ELSE 0 END
from myfacttable
如何处理此场景中的除数0错误?
在代码中,您正在检查when SUM(F_UNITS) <> 0
,但是您要除以的sum(cast(sum(f_units ) as float)) over (partition by O_ID)
是一个完全不同的值。
将您的条件条款更改为sum(cast(sum(f_units ) as float)) over (partition by O_ID) <> 0
,可能会获得更好的运气。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句