Začněte nyníZačněte zdarma

Hledání chybějících dat

Funkce generate_series() se hodí při hledání chybějících dat.

Připomenutí:

generate_series(from, to, interval)

kde from a to jsou datum nebo timestamp a interval lze zapsat jako řetězec s číslem a časovou jednotkou, například '1 month'.

Existují v datech Evanston 311 nějaké dny, kdy nebyl vytvořen žádný požadavek?

Toto cvičení je součástí kurzu

Průzkumná analýza dat v SQL

Zobrazit kurz

Pokyny k cvičení

  1. Napiš poddotaz s funkcí generate_series(), který vrátí všechna data mezi min() a max() hodnoty sloupce date_created v tabulce evanston311.
  2. Napiš další poddotaz, který vybere všechny hodnoty sloupce date_created jako data z tabulky evanston311.
  3. Oba poddotazy by měly vracet hodnoty typu date (hledej ::).
  4. Z prvního poddotazu vyber data (day), která nejsou NOT IN výsledcích druhého poddotazu. Takto získáš dny, které se v date_created nevyskytují.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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);
Upravit a spustit kód