누락된 날짜를 포함한 월별 평균
데이터에 있는 각 달마다, 하루에 생성된 Evanston 311 요청 수의 평균을 구하세요.
이번에는 요청이 없는 날짜도 제외하지 마세요.
이 연습은 강의의 일부입니다
SQL로 하는 탐색적 데이터 분석
연습 안내
- 2016-01-01부터 2018-06-30까지의 날짜 시퀀스를 생성하세요.
- 이 시퀀스를 서브쿼리와 조인하여 하루에 생성된 요청 수를 집계하세요.
- 모든 날짜를 담고 있는
date에서 월 단위를 얻으려면date_trunc()를 사용하세요.day가 아니라date입니다. coalesce()를 사용해 NULLcount값을 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;