sql—占0的百分比

ttygqcqt  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(662)

我有一个查询,可以选择一个电话号码、接听的入站电话数、未接的入站电话数,然后是接听电话百分比的公式。
假设用户有入站调用,这个公式工作得很好,但是如果他们根本没有入站调用,我就得到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;
9nvpjoqh

9nvpjoqh1#

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

相关问题