У меня есть таблица продаж и нужно рассчитать среднее время вызова, когда дело выполнено. Я делаю запрос для каждого дня месяца.
Мой запрос
SELECT AVG(case when (outcome= 'Sale1' or outcome='Sale2') then call_length else 0 end) as avg_call_length
FROM SALES
WHERE year(call_date)='2018' and month(call_date)='7' and day(call_date)='30'
Допустим, у меня есть 100 записей, тогда avg_call_length делится на 100, а не столько записей Sale1, либо Sale2. Как написать правильный запрос?
Удалите case
и переместить условие к where
:
SELECT AVG(call_length) as avg_call_length
FROM SALES
WHERE date(call_date) = '2018-07-30'
AND outcome IN ('Sale1', 'Sale2')
Обратите внимание на более простой способ кодирования условий.