데이터 처리 도구/SQL 연습 기록

DAY 12 / [solvesql] Advent of SQL 2024 (유량(Flow)와 저량(Stock))

yourhm 2025. 5. 26. 15:09

유량(Flow)와 저량(Stock)

-- 연도별 새롭게 소장하게 된 작품의 수
-- 연도별 누적 소장 작품 수

SELECT ac_year AS "Acquisition year"
     , cnt AS "New acquisitions this year (Flow)"
     , SUM(cnt) OVER(order by ac_year) AS "Total collection size (Stock)"
FROM (
  SELECT YEAR(acquisition_date) AS ac_year
      , COUNT(artwork_id) AS cnt
  FROM artworks
  WHERE acquisition_date IS NOT NULL
  GROUP BY YEAR(acquisition_date)
  ) AS cal

 

작성 순서

(1) 소장 일시 컬럼을 이용해 연도별 작품 수 집계

단, 소장 년도 정보가 없는 작품은 제외 (전체 130262 행 중 "acquisition_date IS NULL"인 행은 5463 행)

(2) 윈도우 함수 SUM() 집계 함수를 이용하여 누적 합계 구하기