Ontbrekende datums vinden
De functie generate_series() is handig om ontbrekende datums op te sporen.
Onthoud:
generate_series(from, to, interval)
waarbij from en to datums of timestamps zijn, en interval kan worden opgegeven als een string met een getal en een tijdseenheid, zoals '1 month'.
Zijn er dagen in de Evanston 311-gegevens waarop geen verzoeken zijn aangemaakt?
Deze oefening maakt deel uit van de cursus
Exploratory Data Analysis in SQL
Oefeninstructies
- Schrijf een subquery met
generate_series()om alle datums op te halen tussen demin()enmax()date_createdinevanston311. - Schrijf nog een subquery om alle waarden van
date_createdals datums te selecteren uitevanston311. - Beide subquery's moeten waarden van het type
dateopleveren (let op de::). - Selecteer datums (
day) uit de eerste subquery dieNOT INde resultaten van de tweede subquery staan. Zo krijg je de dagen die niet indate_createdvoorkomen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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);