CommencerCommencer gratuitement

Moyenne mensuelle avec dates manquantes

Trouvez le nombre moyen de demandes pour le 311 d’Evanston créées par jour pour chaque mois des données.

Cette fois-ci, n'ignorez pas les dates sans demande.

Cet exercice fait partie du cours

Analyse exploratoire des données en SQL

Afficher le cours

Instructions

  • Générez une série de dates allant du 01/01/2016 au 30/06/2018.
  • Associez la série à une sous-requête pour compter le nombre de demandes créées par jour.
  • Utilisez date_trunc() pour obtenir des mois à partir de date, qui contient toutes les dates, et PAS day.
  • Utilisez coalesce() pour remplacer les valeurs NULL de count par 0. Calculez la moyenne de cette valeur.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

-- 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; 
Modifier et exécuter le code