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 de exercício
- Escreva uma subconsulta usando
generate_series()
para obter todas as datas entremin()
emax()
date_created
emevanston311
. - Escreva outra subconsulta para selecionar todos os valores de
date_created
como datas emevanston311
. - Ambas as subconsultas devem produzir valores do tipo
date
(procure o::
). - Selecione as datas (
day
) da primeira subconsulta que sãoNOT IN
os 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 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);