我有一个查询,其中选择一个电话号码,已接听来电的计数,未接听来电的计数,然后是已接听电话百分比的公式。

假设用户进行了入站呼叫,此公式效果很好,但是如果他们根本没有入站呼叫,我将得到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;

最佳答案

这就是我使用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)

关于mysql - 占MySQL零的百分比,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49983311/

10-13 02:42