Začněte nyníZačněte zdarma

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

Zobrazit kurz

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 sloupce date, který obsahuje všechna data – NOT ze sloupce day.
  • Pomocí coalesce() nahraď hodnoty NULL ve sloupci count hodnotou 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; 
Upravit a spustit kód