Hitta saknade datum
Funktionen generate_series() kan vara användbar för att identifiera saknade datum.
Kom ihåg:
generate_series(from, to, interval)
där from och to är datum eller tidsstämplar, och interval anges som en sträng med ett tal och en tidsenhet, till exempel '1 month'.
Finns det några dagar i Evanston 311-datan då inga ärenden skapades?
Den här övningen är en del av kursen
Exploratory Data Analysis i SQL
Övningsinstruktioner
- Skriv en underfråga med
generate_series()för att hämta alla datum mellanmin()ochmax()fördate_createdievanston311. - Skriv en annan underfråga som väljer ut alla värden i
date_createdsom datum frånevanston311. - Båda underfrågorna ska producera värden av typen
date(leta efter::). - Välj ut datum (
day) från den första underfrågan somNOT INresultaten från den andra underfrågan. Det ger dig de dagar som saknas idate_created.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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);