У меня есть запрос, который выбирает номер телефона, количество отвеченных входящих звонков, количество пропущенных входящих звонков, а затем формулу для процента отвеченных звонков.
Предполагая, что у пользователя были входящие вызовы, эта формула отлично работает, но если у него вообще не было входящих вызовов, я получаю 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, если на вызовы нет ответа, и преобразует ее в 100 с помощью Coalesce;
COALESCE(100.00 * sum(case when calltype = 2 and answered = 1 then 1 end)/
sum(case when calltype = 2 then 1 end), 100)
Не могли бы вы предоставить образцы данных и ожидать результата?