누락된 날짜 찾기
generate_series() 함수는 누락된 날짜를 찾을 때 유용하게 활용할 수 있습니다.
참고:
generate_series(from, to, interval)
여기서 from과 to는 날짜 또는 타임스탬프이며, interval은 '1 month'처럼 숫자와 시간 단위가 결합된 문자열로 지정할 수 있습니다.
Evanston 311 데이터에서 요청이 하나도 생성되지 않은 날이 있나요?
이 연습은 강의의 일부입니다
SQL을 활용한 탐색적 데이터 분석
연습 안내
generate_series()를 사용하는 서브쿼리를 작성하여evanston311에서min()과max()date_created사이의 모든 날짜를 가져오세요.- 또 다른 서브쿼리를 작성하여
evanston311에서date_created의 모든 값을 날짜 유형으로 선택하세요. - 두 서브쿼리 모두
date유형의 값을 반환해야 합니다 (::를 확인하세요). - 첫 번째 서브쿼리의 날짜(
day) 중 두 번째 서브쿼리 결과에NOT IN인 것을 선택하세요. 이렇게 하면date_created에 존재하지 않는 날짜를 확인할 수 있습니다.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
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);