Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  1. Skriv en underfråga med generate_series() för att hämta alla datum mellan min() och max() för date_created i evanston311.
  2. Skriv en annan underfråga som väljer ut alla värden i date_created som datum från evanston311.
  3. Båda underfrågorna ska producera värden av typen date (leta efter ::).
  4. Välj ut datum (day) från den första underfrågan som NOT IN resultaten från den andra underfrågan. Det ger dig de dagar som saknas i date_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);
Redigera och kör kod