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
Instruções do exercício
- Escreva uma subconsulta usando
generate_series()para obter todas as datas entremin()emax()date_createdemevanston311. - Escreva outra subconsulta para selecionar todos os valores de
date_createdcomo datas emevanston311. - Ambas as subconsultas devem produzir valores do tipo
date(procure o::). - Selecione as datas (
day) da primeira subconsulta que sãoNOT INos resultados da segunda subconsulta. Isso dá a você dias que não estão emdate_created.
Exercício interativo prático
Experimente este exercício completando 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);