- Z차트
- 월별 매출, 매출 누계, 이동 합계를 한 차트에 표현한 것
- 계절의 영향을 배제하고 트렌드를 분석하기 위해 사용하는 차트
- 매출 누계: 해당 월까지의 매출을 모두 합한 값
- 이동 합계: 해당 월의 매출과 과거 11개월의 매출을 합한 값
#이탈리아의 제품별 Z차트 구하기
SELECT
ProductName
,DATE_FORMAT(STR_TO_DATE(Date,'%m/%d/%Y'),'%Y-%m') AS dt_month
,SUM(Price*Quantity) as monthly_sales #월별 매출
,ROUND(
SUM(SUM(Price*Quantity)) OVER(PARTITION BY ProductName ORDER BY
DATE_FORMAT(STR_TO_DATE(Date,'%m/%d/%Y'),'%Y-%m')
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW )
, 2) AS monthly_cumsum #매출 누계
,ROUND(
SUM(SUM(Price*Quantity)) OVER(PARTITION BY ProductName ORDER BY
DATE_FORMAT(STR_TO_DATE(Date,'%m/%d/%Y'),'%Y-%m')
ROWS BETWEEN 11 PRECEDING AND CURRENT ROW )
, 2) AS moving_cumsum #이동 합계
FROM sales_transaction_v stv
WHERE Country = 'Italy'
GROUP BY ProductName ,dt_month
ORDER BY ProductName
;
- YOY
- Year-Over-Year Growth
- 전년 대비 증가율을 나타내는 지표
- (올해 매출 - 지난해 매출)/지난해 매출 * 100
#PostgreSQL로 YOY 구하기
WITH sum_spend AS(
SELECT EXTRACT(YEAR FROM transaction_date) AS year
,product_id
,SUM(spend) AS curr_year_spend
FROM user_transactions
GROUP BY year,product_id
ORDER BY product_id,year
),pr AS (
SELECT
year
,product_id
,curr_year_spend
,LAG(curr_year_spend) OVER(PARTITION BY product_id ORDER BY year)
AS prev_year_spend
FROM sum_spend
)
SELECT
year
,product_id
,curr_year_spend
,prev_year_spend
,ROUND(
(curr_year_spend - prev_year_spend)/prev_year_spend*100.0
,2)
AS yoy_rate
FROM pr
머신러닝 1주차 마무리~~!!
아직 잘 감이 안오긴 하는데
다음 주는 더 많이 이해하길...!
'Data > [스파르타 내일배움캠프]' 카테고리의 다른 글
[TIL]본캠프 37일차 (2) | 2024.06.10 |
---|---|
[WIL]본캠프 8주차 (2) | 2024.06.07 |
[TIL]본캠프 35일차 (3) | 2024.06.05 |
[TIL]본캠프 34일차 (2) | 2024.06.04 |
[TIL]본캠프 33일차 (2) | 2024.06.03 |