Měsíční průměr s chybějícími daty
Zjisti průměrný počet požadavků Evanston 311 vytvořených za den pro každý měsíc v datech.
Tentokrát nezanedbávej dny, kdy nebyl podán žádný požadavek.
Toto cvičení je součástí kurzu
Průzkumná analýza dat v SQL
Pokyny k cvičení
- Vygeneruj sérii dat od 2016-01-01 do 2018-06-30.
- Spoj sérii s poddotazem, který počítá počet požadavků vytvořených za den.
- Pomocí
date_trunc()získej měsíce ze sloupcedate, který obsahuje všechna data – NOT ze sloupceday. - Pomocí
coalesce()nahraď hodnoty NULL ve sloupcicounthodnotou 0. Z těchto hodnot pak vypočítej průměr.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
-- 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;