15분
"전일 대비 증감률 좀 넣어줘"
Day 2: 전날 매출이랑 비교해줘
"전일 대비 증감률 좀 넣어줘"
SQL 고급 - 윈도우 함수와 성능 최적화 > Day 2: 전날 매출이랑 비교해줘
학습 목표
LAG/LEAD가 필요한 실무 상황을 이해한다 시계열 분석의 필요성을 체감한다
화요일 오전, 경영지원팀 요청
"이 매출 보고서에 전일 대비 증감률 좀 넣어줄 수 있어? 사장님이 '어제보다 얼마나 올랐는지' 한눈에 보고 싶대."
일단 매출 데이터를 보자.
에디터 로딩 중...
결과:
에디터 로딩 중...
"전일 대비 증감률"은 어떻게 계산하지?
(오늘 매출 - 어제 매출) / 어제 매출 * 100
첫 번째 시도: 셀프 조인
에디터 로딩 중...
동작은 하는데...
- 날짜 계산이 복잡: 공휴일, 주말 건너뛰기는?
- 성능 이슈: 대용량 데이터에서 셀프 조인은 느림
- 가독성: "전날"이라는 의미가 명확하지 않음
두 번째 시도: 서브쿼리
에디터 로딩 중...
더 복잡해졌다. 그리고 여전히 느리다.
정답은 LAG 함수
에디터 로딩 중...
결과:
에디터 로딩 중...
한 줄로 "이전 행"에 접근!
오늘 배울 것
- LAG(): 이전 행의 값 가져오기
- LEAD(): 다음 행의 값 가져오기
- 프레임(Frame): 윈도우의 범위 지정
- 이동 평균: 최근 7일 평균 등 계산
- 누적 합계: 월초부터 누적 매출 계산
시계열 분석의 핵심 도구들!