oracle数据同比的时候除数为0该怎么处理

在使用LAG OVER函数进行年度数据同比分析时,由于存在CR值为0的情况,导致出现除数为0的错误。博主寻求解决除数为0问题的方法,希望能从数据库专家那里获得指导,以确保同比计算的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如图,我想同比每年对应月份的cr值,也就是,今年比上年的是增加了还是减少了,然后用得是lag over函数,我并没有深入的了解过这两个函数,然后最后的结果就是,因为cr里面存在0,所以,进行数据同比的时候会报错,提示,除数不能为0,请问这种情况该怎么处理,求各位大神能教教俺,有点着急,在线等~,跪谢

select
   a.*,
   nvl(round(a.cr/lag(a.cr) over(partition by month order by a.stat_date)*100,2)-100,'0')||'%' hb
from (
select
   t.stat_date,
   substr(t.stat_date,0,4) year,
   substr(t.stat_date,5,2) month,
   t.wccb wccb,
   t.tjtb tjtb,
   t.cj cj,
   trunc(t.cj/t.wccb,4) cr
from
(
select
       substr(to_char(t.created_date,'yyyyMMdd'),0,6) stat_date,
       count(t.th_id) WCCB,
   &nbs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值