Media lunară cu date lipsă
Calculează numărul mediu de solicitări Evanston 311 create pe zi pentru fiecare lună din date.
De data aceasta, nu ignora zilele fără nicio solicitare.
Acest exercițiu face parte din cursul
Analiza Exploratorie a Datelor în SQL
Instrucțiuni pentru exercițiu
- Generează o serie de date de la 2016-01-01 până la 2018-06-30.
- Unește seria cu o subinterogare care numără solicitările create pe zi.
- Folosește
date_trunc()pentru a extrage lunile dindate, care conține toate datele, NU dinday. - Folosește
coalesce()pentru a înlocui valorile NULL dincountcu 0. Calculează media acestei valori.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
-- 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;