Fehlende Datumsangaben finden
Die Funktion generate_series() kann nützlich sein, um fehlende Daten zu ermitteln.
Nutze folgende Syntax:
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_createdinevanston311zu erhalten. - Schreibe eine weitere Unterabfrage, um alle Werte von
date_createdals Datum ausevanston311auszuwählen. - Beide Unterabfragen sollten Werte vom Typ
dateliefern (schau nach dem::). - Wähle Daten (
day) aus der ersten Unterabfrage aus, dieNICHTin den Ergebnissen der zweiten Unterabfrage enthalten sind. So erhältst du Tage, die nicht indate_createdsind.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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);