Home 계절성 비교 - 구간 비교 작년과 올해 비교
Post
Cancel

계절성 비교 - 구간 비교 작년과 올해 비교

작년과 올해 비교

  • Book stores에 해당하는 날짜와 해당 날짜의 월만을 추출한다.
    1
    2
    3
    
    SELECT sales_month, DATE_PART('month', sales_month) AS month
    FROM retail_sales
    WHERE kind_of_business = 'Book stores';
    


  • 월별로 구분했다.
  • 같은 월에 해당하는 작년의 날짜와 매출을 나타내는 컬럼을 생성한다.
    1
    2
    3
    4
    5
    6
    7
    
    SELECT
      sales_month,
      sales,
      LAG(sales_month) OVER(PARTITION BY DATE_PART('month', sales_month) ORDER BY sales_month ASC) AS prev_year_month,
      LAG(sales) OVER(PARTITION BY DATE_PART('month', sales_month) ORDER BY sales_month) AS prev_year_sales
    FROM retail_sales
    WHERE kind_of_business = 'Book stores';
    


  • 같은 월에 해당하는 현재 년도와 작년도의 매출의 차이를 계산한다.
    1
    2
    3
    4
    5
    6
    7
    
    SELECT 
      sales_month,
      sales,
      sales - LAG(sales) OVER(PARTITION BY DATE_PART('month', sales_month) ORDER BY sales_month ASC) AS absolute_diff,
      ROUND(((sales / LAG(sales) OVER(PARTITION BY DATE_PART('month', sales_month) ORDER BY sales_month ASC))-1)*100, 2) ASpct_diff
    FROM retail_sales
    WHERE kind_of_business = 'Book stores';
    


  • 각 월의 이름을 부여한 컬럼을 생성한다.
  • 1992-01-01부터 1994-12-01까지에 해당하는 날짜를 조회한다.
  • 조건 함수를 이용하여 각 연도에 해당하는 매출을 입력하고 해당 연도가 아닐 경우 NULL이 입력된다.
  • 월별로 그루핑하여 연도별 월별 매출을 한눈에 확인할 수 있다.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    SELECT
      DATE_PART('month', sales_month) AS month_number,
      TO_CHAR(sales_month, 'Month') AS month_name,
      MAX(CASE WHEN DATE_PART('year', sales_month)=1992 THEN sales END) AS sales_1992,
      MAX(CASE WHEN DATE_PART('year', sales_month)=1993 THEN sales END) AS sales_1993,
      MAX(CASE WHEN DATE_PART('year', sales_month)=1994 THEN sales END) AS sales_1994
    FROM retail_sales
    WHERE kind_of_business = 'Book stores'
      AND sales_month BETWEEN '1992-01-01' AND '1994-12-01'
    GROUP BY DATE_PART('month', sales_month), TO_CHAR(sales_month, 'Month');
    

This post is licensed under CC BY 4.0 by the author.