Rechercher les dates manquantes
La fonction generate_series()
peut être utile pour identifier les dates manquantes.
Rappel :
generate_series(from, to, interval)
où 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
Instructions
- Ecrivez une sous-requête utilisant
generate_series()
pour obtenir toutes les dates entremin()
etmax()
date_created
dansevanston311
. - Ecrivez une autre sous-requête pour sélectionner toutes les valeurs de
date_created
sous forme de dates à partir deevanston311
. - Les deux sous-requêtes doivent produire des valeurs de type
date
(recherchez le::
). - 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 dansdate_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);