시작하기무료로 시작하기

누락된 날짜 찾기

generate_series() 함수는 누락된 날짜를 찾을 때 유용하게 활용할 수 있습니다.

참고:

generate_series(from, to, interval)

여기서 fromto는 날짜 또는 타임스탬프이며, interval'1 month'처럼 숫자와 시간 단위가 결합된 문자열로 지정할 수 있습니다.

Evanston 311 데이터에서 요청이 하나도 생성되지 않은 날이 있나요?

이 연습은 강의의 일부입니다

SQL을 활용한 탐색적 데이터 분석

강의 보기

연습 안내

  1. generate_series()를 사용하는 서브쿼리를 작성하여 evanston311에서 min()max() date_created 사이의 모든 날짜를 가져오세요.
  2. 또 다른 서브쿼리를 작성하여 evanston311에서 date_created의 모든 값을 날짜 유형으로 선택하세요.
  3. 두 서브쿼리 모두 date 유형의 값을 반환해야 합니다 (::를 확인하세요).
  4. 첫 번째 서브쿼리의 날짜(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);
코드 편집 및 실행