CommencerCommencer gratuitement

Rechercher les dates manquantes

La fonction generate_series() peut être utile pour identifier les dates manquantes.

Rappel :

generate_series(from, to, interval)

from et to sont des dates ou des horodatages, et interval peut être spécifié comme une chaîne avec un nombre et une unité de temps, comme '1 month'.

Y a-t-il des jours dans les données du 311 d’Evanston où aucune demande n'a été créée ?

Cet exercice fait partie du cours

Analyse exploratoire des données en SQL

Afficher le cours

Instructions

  1. Ecrivez une sous-requête utilisant generate_series() pour obtenir toutes les dates entre min() et max() date_created dans evanston311.
  2. Ecrivez une autre sous-requête pour sélectionner toutes les valeurs de date_created sous forme de dates à partir de evanston311.
  3. Les deux sous-requêtes doivent produire des valeurs de type date (recherchez le ::).
  4. Sélectionnez les jours (day) de la première sous-requête qui NE SONT PAS (NOT IN) dans les résultats de la deuxième sous-requête. Cela vous donne des jours qui ne sont pas dans date_created.

Exercice interactif pratique

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

SELECT day
-- 1) Subquery to generate all dates
-- from min to max date_created
  FROM (SELECT generate_series(___(___),
                               ___(___),
                               ___)::___ AS day
          -- What table is date_created in?
          FROM ___) AS all_dates
-- 4) Select dates (day from above) that are NOT IN the subquery
 WHERE day ___ 
       -- 2) Subquery to select all date_created values as dates
       (SELECT ___::___
          FROM evanston311);
Modifier et exécuter le code