Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  1. Schrijf een subquery met generate_series() om alle datums op te halen tussen de min() en max() date_created in evanston311.
  2. Schrijf nog een subquery om alle waarden van date_created als datums te selecteren uit evanston311.
  3. Beide subquery's moeten waarden van het type date opleveren (let op de ::).
  4. Selecteer datums (day) uit de eerste subquery die NOT IN de resultaten van de tweede subquery staan. Zo krijg je de dagen die niet in date_created voorkomen.

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);
Code bewerken en uitvoeren