Repérer les dates manquantes
La fonction generate_series() peut servir à repérer les dates manquantes.
Rappel :
generate_series(from, to, interval)
où from et to sont des dates ou des timestamps, et interval peut être donné sous forme de chaîne avec un nombre et une unité de temps, par exemple '1 month'.
Y a‑t‑il des jours, dans les données 311 d'Evanston, pour lesquels aucune demande n'a été créée ?
Cette activité fait partie du cours
Analyse exploratoire des données en SQL
Instructions de l’exercice
- Écrivez une sous-requête avec
generate_series()pour obtenir toutes les dates entre les valeursmin()etmax()dedate_createddansevanston311. - Rédigez une autre sous-requête pour sélectionner toutes les valeurs de
date_createden tant que dates à partir deevanston311. - Les deux sous-requêtes doivent produire des valeurs de type
date(repérez le::). - Sélectionnez les dates (
day) de la première sous-requête qui ne sontNOT INles résultats de la deuxième sous-requête. Vous obtiendrez ainsi les jours absents dedate_created.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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);