시작하기무료로 시작하기

누락된 날짜를 포함한 월별 평균

데이터에 있는 각 달마다, 하루에 생성된 Evanston 311 요청 수의 평균을 구하세요.

이번에는 요청이 없는 날짜도 제외하지 마세요.

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

SQL로 하는 탐색적 데이터 분석

강의 보기

연습 안내

  • 2016-01-01부터 2018-06-30까지의 날짜 시퀀스를 생성하세요.
  • 이 시퀀스를 서브쿼리와 조인하여 하루에 생성된 요청 수를 집계하세요.
  • 모든 날짜를 담고 있는 date에서 월 단위를 얻으려면 date_trunc()를 사용하세요. day가 아니라 date입니다.
  • coalesce()를 사용해 NULL count 값을 0으로 바꾸세요. 그런 다음 이 값의 평균을 계산하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

-- generate series with all days from 2016-01-01 to 2018-06-30
WITH all_days AS 
     (SELECT generate_series(___,
                             ___,
                             ___::___) AS date),
     -- Subquery to compute daily counts
     daily_count AS 
     (SELECT date_trunc('day', date_created) AS day,
             count(*) AS count
        FROM evanston311
       GROUP BY day)
-- Aggregate daily counts by month using date_trunc
SELECT ___ AS month,
       -- Use coalesce to replace NULL count values with 0
       avg(coalesce(___, ___)) AS average
  FROM all_days
       LEFT JOIN daily_count
       -- Joining condition
       ON all_days.___=daily_count.___
 GROUP BY month
 ORDER BY month; 
코드 편집 및 실행