Encontrar datas ausentes
A função generate_series() pode ser útil para identificar datas ausentes.
Relembre:
generate_series(from, to, interval)
onde from e to são dates ou timestamps, e interval pode ser especificado como uma string com um número e uma unidade de tempo, como '1 month'.
Há algum dia nos dados do 311 de Evanston 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 entre omin()e omax()dedate_createdemevanston311. - Escreva outra subconsulta para selecionar todos os valores de
date_createdcomo datas a partir deevanston311. - As duas subconsultas devem produzir valores do tipo
date(procure pelo::). - Selecione as datas (
day) da primeira subconsulta que estejamNOT INnos resultados da segunda subconsulta. Isso fornece os dias que não aparecem 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);