Média mensal com datas ausentes
Encontre o número médio de solicitações 311 de Evanston criadas por dia para cada mês dos dados.
Dessa vez, não ignore as datas sem solicitações.
Este exercício faz parte do curso
Análise exploratória de dados em SQL
Instruções de exercício
- Gere uma série de datas de 2016-01-01 a 2018-06-30.
- Junte a série a uma subconsulta para contar o número de solicitações criadas por dia.
- Use
date_trunc()
para obter meses dedate
, que tem todas as datas, NOTday
. - Use
coalesce()
para substituir os valores de NULLcount
por 0. Calcule a média desse valor.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
-- generate series with all days from 2016-01-01 to 2018-06-30
WITH all_days AS
(SELECT generate_series(___,
___,
___::___) AS date),
-- Subquery to compute daily counts
daily_count AS
(SELECT date_trunc('day', date_created) AS day,
count(*) AS count
FROM evanston311
GROUP BY day)
-- Aggregate daily counts by month using date_trunc
SELECT ___ AS month,
-- Use coalesce to replace NULL count values with 0
avg(coalesce(___, ___)) AS average
FROM all_days
LEFT JOIN daily_count
-- Joining condition
ON all_days.___=daily_count.___
GROUP BY month
ORDER BY month;