Fehlende Datumsangaben finden
Die Funktion generate_series()
kann nützlich sein, um fehlende Daten zu ermitteln.
Nicht vergessen:
generate_series(from, to, interval)
wobei from
und to
Datumsangaben oder Zeitstempel sind und interval
als String mit einer Zahl und einer Zeiteinheit angegeben werden kann, z. B. '1 month'
.
Gibt es Tage in den Evanston 311-Daten, an denen keine Anfragen erstellt wurden?
Diese Übung ist Teil des Kurses
Explorative Datenanalyse in SQL
Anleitung zur Übung
- Schreibe eine Unterabfrage mit
generate_series()
, um alle Daten zwischenmin()
undmax()
date_created
inevanston311
zu erhalten. - Schreibe eine weitere Unterabfrage, um alle Werte von
date_created
als Datum ausevanston311
auszuwählen. - Beide Unterabfragen sollten Werte vom Typ
date
liefern (siehe::
). - Wähle Daten (
day
) aus der ersten Unterabfrage aus, dieNOT IN
zu den Ergebnissen der zweiten Unterabfrage gehören. So erhältst du Tage, die nicht indate_created
sind.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
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);