占mysql零的百分比

时间:2018-04-23 14:11:39

标签: mysql sql

我有一个查询,用于选择电话号码,已接听的入站呼叫计数,未接听的入站呼叫计数,以及接听电话百分比的公式。

假设用户有入站呼叫,这个公式很有效,但如果他们根本没有入站呼叫,我就会得到null。这个想法是,如果他们没有入站呼叫,那么他们应该有100%作为接听电话百分比的公式。

我如何才能最好地修改此功能以保留当前功能,但却为没有入站呼叫的用户负责?

SELECT  phone
 , sum(if(calltype= 2,1,0) and answered = 1) as inboundAnswered
 , sum(if(calltype= 2,1,0) and answered = 0) as inboundMissed
 , round((sum(if(calltype= 2,1,0) and answered = 1))/(sum(if(calltype= 2, 1, 0))) * 100,2) as AnsweredPercentage -- This takes inbound answered calls and divides by total inbound calls
FROM
  phoneCalls;

1 个答案:

答案 0 :(得分:1)

这就是我使用100%标准SQL进行计算的方法。当没有应答呼叫时,让公式返回NULL,并使用Coalesce将其转换为100;

COALESCE(100.00 * sum(case when calltype = 2 and answered = 1 then 1 end)/
                  sum(case when calltype = 2 then 1 end), 100)