매출의 성장 또는 쇠퇴를 다양한 각도에서 살펴보기 위해 Z 차트를 활용하는 것은 매우 좋은 방법이다.
이번 글에서는 Z차트의 정의와 샘플 데이터 셋을 빅쿼리 SQL을 통해 구성하는 법을 알아보겠다.
Z 차트란?
'월차매출,'매출누계','이동년계'라는 3가지 지표로 구성되어, 계절변동의 영향을 배제하고 트렌드를 분석하는 방법이다.
이를 통해 데이터의 단기적 추이(매출누계)와 장기적 추이(이동년계)를 알 수 있다.
월차매출 : 월별 매출 합계
매출누계 : 해당 월의 매출에 이전 월까지의 매출 누계 (ex : 2018년 03월 기준 ---> 2018년 1월, 2월, 3월 매출의 합)
이동년계 : 해당 월의 매출에 과거 11개월의 매출을 합한 값
(ex : 2018년 3월 기준 ---> 2017년 2월 ~ 2018년 3월 매출의 합)
SQL을 사용하여 Z차트 구성하기
데이터 셋 : 샘플 매출 데이터
1번 박스 - with 절
2번 박스 - 일별 매출 임시 테이블(daily_purchase), 월별 매출 임시 테이블(monthly_purchase)
이번 쿼리 역시 이전 글에서 사용한 매출 샘플 데이터와 with 절을 활용한다.
활용한 데이터와 1번, 2번 SQL문 해석을 보고 싶다면 이전 글에서 확인
이전 글 보러 가기 : 빅쿼리 SQL - 기본적인 매출 데이터 분석 '한방 정리' 쿼리
빅쿼리SQL - 기본적인 매출 데이터 분석 '한방 정리' 쿼리
매출 데이터를 급하게 분석해 달라는 요구에 신속하게 대응하기 위해서는 기준점이 되는 매출 지표를 알고 있어야 한다. 이번 글에서는 기본적인 매출 지표엔 어떤 것이 있는지 모르는 학생들
khw742002.tistory.com
3번 박스 - 연간 매출 관련 임시 테이블(cal_index)
캡처에서 생략했지만 3번 역시 with 절의 임시 테이블 중 하나이기 때문에
2번 sql 문이 선행되어야 한다는 점을 잊지 말자.
위 쿼리 결과는 3번 쿼리문의 결과이다. 즉 cal_index 임시 테이블의 모습
여기서 주목해야 할 열은 cal_sale(매출 누계), year_sale(이동년계)
cal_sale : 2018년의 매출누계를 구하기 위해 sum(case문)을 활용하였고,
각각의 행(월별) 마다 시행해야 하므로 over(year, month(정렬) ROWS UNBOUNDED PRECENDING)을 활용해 당월까지의 매출 합을 구함
year_sale : sum(월별 매출)을 사용하여 매출합을 구하나, 행별로 당월 포함 12 개월 간의 매출 누계를 구하기 위해 over(year,month(정렬) ROWS BETWEEN 11 PRECENDING AND CURRENT ROW) 를 사용
4번 박스 - Z차트를 구성하는 3가지 지표 집계하기
1번 monthly_purchase 테이블에서 월별매출
2번 cal_index 테이블에서 매출누계,이동년계를 구했으므로
4번 쿼리문을 사용해 집계하면 완성
Z 차트 시각화 및 해석
파이썬을 활용하여 이번 데이터 셋의 Z차트 시각화 하기
https://github.com/hongwon2/BigQuery-Practice/blob/main/Z_%EC%B0%A8%ED%8A%B8_SQL_.ipynb
GitHub - hongwon2/BigQuery-Practice: 데이터 분석을 위한 빅쿼리SQL 연습 레파지토리입니다.
데이터 분석을 위한 빅쿼리SQL 연습 레파지토리입니다. Contribute to hongwon2/BigQuery-Practice development by creating an account on GitHub.
github.com
장기 트렌드를 나타내는 이동 합계가 증가 추세를 나타냄. 또한 단기 추이를 보이는 매출 누계 역시 증가하는 것을 알 수 있음. 이는 2018년 말 월차 매출의 증가가 영향을 끼침
*참고 : 추가적인 Z차트 예시 및 해석
1번 Z 차트 : 매출이 거의 일정한 상태 하지만 일종의 정체기로 해석할 수 있음
2번 Z 차트 : 매출이 성장하는 상태의 Z 차트
3번 Z 차트 : 작년에 매출이 성장했지만, 올해 성장을 멈춘 상태를 나타내는 Z 차트
- 월별 매출과 매출 누계는 직선이지만 이동년계가 내려가는 중
,
<데이터 분석을 위한 SQL 레시피> 도서를 참고하여 작성되었습니다.
'Specialist > SQL' 카테고리의 다른 글
[빅쿼리-SQL]고객 마스터 데이터를 카테고리화(성별,연령대)하여 집계하기 (0) | 2022.06.21 |
---|---|
SQL 코딩 테스트 연습 사이트 추천 및 후기 (1) | 2022.05.15 |
[빅쿼리-SQL] 매출 데이터 분석 '한방 정리' 쿼리 (0) | 2022.05.09 |
[빅쿼리 - SQL]OVER 절과 ORDER BY로 순서 정의하기(row_number,rank,dense_rank, lag,lead 함수 사용) (0) | 2022.05.01 |
[빅쿼리 - SQL] OVER 절과 PARTITION BY (0) | 2022.04.29 |
댓글