my SQL query which works fine is
select case month(timestamp_iso(STATUSDATE))
when 1 then 'January'
when 2 then 'February'
when 3 then 'March'
when 4 then 'April'
when 5 then 'May'
when 6 then 'Jun'
when 7 then 'July'
when 8 then 'August'
when 9 then 'September'
when 10 then 'October'
when 11 then 'November'
when 12 then 'December'
end as Month,
count (case when service='ADSL' then 1 end) as ADSL,
AVG (timestampdiff(
4,
char(actualfinish - reportdate))/60.00) as efficiecny
from INCIDENT
where year(STATUSDATE) = year(current_timestamp)
group by month(timestamp_iso(STATUSDATE))
I want to get for each month number of services with ADSL (it is done through the first COUNT)
and average time difference in hours for the records which do not have service ADSL. So I must exclude in the AVG function all records with service ADSL but I can not put it in where clause
where year(STATUSDATE) = year(current_timestamp) and service!='ADSL'
because my COUNT function needs to have service=’ADSL’
How to solve this?
Thanks
As Avg() aggregate function ignores nulls, you can set expression to null if service is ‘ADSL’. Avg() will then ignore those records.
You could try with coalesce: