Kom igångKom igång gratis

Månadsgenomsnitt med saknade datum

Beräkna det genomsnittliga antalet Evanston 311-ärenden som skapades per dag för varje månad i datamängden.

Den här gången ska du inte ignorera datum utan ärenden.

Den här övningen är en del av kursen

Exploratory Data Analysis i SQL

Visa kurs

Övningsinstruktioner

  • Generera en serie datum från 2016-01-01 till 2018-06-30.
  • Koppla serien till en underfråga som räknar antalet ärenden som skapades per dag.
  • Använd date_trunc() för att hämta månader från date, som innehåller alla datum – inte från day.
  • Använd coalesce() för att ersätta NULL-värden i count med 0. Beräkna sedan genomsnittet av detta värde.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

-- 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; 
Redigera och kör kod