Trova le date mancanti
La funzione generate_series() è utile per identificare le date mancanti.
Ricorda:
generate_series(from, to, interval)
dove from e to sono date o timestamp, e interval può essere specificato come stringa con un numero e un'unità di tempo, ad esempio '1 month'.
Ci sono giorni nei dati di Evanston 311 in cui non è stata creata alcuna richiesta?
Questo esercizio fa parte del corso
Analisi esplorativa dei dati in SQL
Istruzioni dell'esercizio
- Scrivi una subquery con
generate_series()per ottenere tutte le date tramin()emax()didate_createdinevanston311. - Scrivi un'altra subquery per selezionare tutti i valori di
date_createdcome date daevanston311. - Entrambe le subquery devono produrre valori di tipo
date(cerca::). - Seleziona le date (
day) dalla prima subquery cheNOT INi risultati della seconda subquery. In questo modo ottieni i giorni che non compaiono indate_created.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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);