sql计算汇总问题,当分母为零时报错,怎么办?

  • Post author:
  • Post category:其他


编写sql时,数据汇总出来后,有些数据出现分母为0时报异常了,比如我们计算客单价指标,销售总额除以下单人数 sum(gmv)/count(distinct user_id),这时候count(distinct user_id) 有可能出现为0的情况,要是出现0就会报异常。


这时候该怎么处理呢?可以利用case when ,先判断count(distinct user_id) 是否为0 ,要是为0,直接返回0,要是不是,再用销售总额除以下单人数

select case when count(distinct user_id)=0 then 0 else sum(gmv)/count(distinct user_id) end。

简单来说就是select case when b=0 then 0 else a/b end。