월별 증감 비교
월을 비교하려면 다음 윈도 함수 중 하나를 사용해야 해요:
LAG(value, offset): 리포트의 현재 행에서 offset만큼 이전 행의 값을 반환해요.LEAD(value, offset): 리포트의 현재 행에서 offset만큼 이후 행의 값을 반환해요.
목표는 각 국가의 월별 조회수 변화를 보여주는 리포트를 만드는 거예요. 몇 가지 팁을 드리면:
- 날짜를 월 단위로 묶어야 해요. 이를 위해
DATE_PART()함수를 사용할 수 있어요. - 증감률(percent change)은 다음 공식을 사용할 수 있어요:
(value)/(previous_value) - 1. LAG()또는LEAD()함수에 offset 값을 넣지 않으면 기본값은 1이에요.
테이블이 6월 중순에서 끝나므로, 쿼리는 5월 말까지의 데이터만 포함하도록 설정되어 있어요.
이 연습은 강의의 일부입니다
SQL로 리포트 만들기
연습 안내
web_data에서country_id를 가져오고,DATE_PART()함수를 사용해month를 생성하세요.- 월별 총 조회수를 집계한
month_views를 생성하세요. - 해당 국가에 대해 지난달의 총 조회수를 가져오는
previous_month_views를 생성하세요. - 해당 국가에서 이번 달이 지난달 대비 얼마나 변했는지 증감률을 계산하는
perc_change필드를 생성하세요. 음수면 조회수가 감소했음을, 양수면 증가했음을 의미해요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
SELECT
-- Pull month and country_id
____ AS month,
____,
-- Pull in current month views
____ AS month_views,
-- Pull in last month views
____ AS previous_month_views,
-- Calculate the percent change
____ AS perc_change
FROM ____
WHERE date <= '2018-05-31'
GROUP BY ____;