Процент, который составляет нулевой mysql

У меня есть запрос, который выбирает номер телефона, количество отвеченных входящих звонков, количество пропущенных входящих звонков, а затем формулу для процента отвеченных звонков.

Предполагая, что у пользователя были входящие вызовы, эта формула отлично работает, но если у него вообще не было входящих вызовов, я получаю 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;

Не могли бы вы предоставить образцы данных и ожидать результата?

D-Shih 23.04.2018 16:13
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
1
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот как я бы сделал этот расчет, используя 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)

Другие вопросы по теме