ComeçarComece gratuitamente

Localizar datas ausentes

A função generate_series() pode ser útil para identificar datas ausentes.

Recall:

generate_series(from, to, interval)

em que from e to são datas ou carimbos de data/hora, e interval pode ser especificado como uma cadeia de caracteres com um número e uma unidade de tempo, como '1 month'.

Há algum dia nos dados do Evanston 311 em que nenhuma solicitação foi criada?

Este exercício faz parte do curso

Análise exploratória de dados em SQL

Ver Curso

Instruções de exercício

  1. Escreva uma subconsulta usando generate_series() para obter todas as datas entre min() e max() date_created em evanston311.
  2. Escreva outra subconsulta para selecionar todos os valores de date_created como datas em evanston311.
  3. Ambas as subconsultas devem produzir valores do tipo date (procure o ::).
  4. Selecione as datas (day) da primeira subconsulta que são NOT IN os resultados da segunda subconsulta. Isso dá a você dias que não estão em date_created.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

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);
Editar e executar código