Media mensual con fechas que faltan
Encuentra el número medio de solicitudes Evanston 311 creadas al día para cada mes de los datos.
Esta vez, no ignores las fechas sin peticiones.
Este ejercicio forma parte del curso
Análisis exploratorio de datos en SQL
Instrucciones de ejercicio
- Genera una serie de fechas del 2016-01-01 al 2018-06-30.
- Une la serie a una subconsulta para contar el número de solicitudes creadas por día.
- Utiliza
date_trunc()
para obtener los meses dedate
, que tiene todas las fechas, NOTday
. - Utiliza
coalesce()
para sustituir los valores de NULLcount
por 0. Calcula la media de este valor.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
-- 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;