본문 바로가기
SQL

[solvesql - day 12] 3년간 들어온 소장품 집계하기

by 우솨 2025. 1. 11.

https://solvesql.com/problems/summary-of-artworks-in-3-years/

 

https://solvesql.com/problems/summary-of-artworks-in-3-years/

 

solvesql.com

-- 작품 데이터를 분류(classification)별로 연도별 작품 수를 계산하고 정렬
SELECT 
    classification,  -- 작품의 분류 정보를 가져옴

    -- 2014년도에 수집된 작품 수를 계산
    SUM(
        CASE strftime('%Y', acquisition_date) -- acquisition_date에서 연도를 추출
            WHEN '2014' THEN 1                -- 연도가 2014인 경우 1을 더함
            ELSE 0                            -- 그 외의 경우 0을 더함
        END
    ) AS '2014',                              -- 결과를 '2014' 열로 표시

    -- 2015년도에 수집된 작품 수를 계산
    SUM(
        CASE strftime('%Y', acquisition_date)
            WHEN '2015' THEN 1                -- 연도가 2015인 경우 1을 더함
            ELSE 0
        END
    ) AS '2015',                              -- 결과를 '2015' 열로 표시

    -- 2016년도에 수집된 작품 수를 계산
    SUM(
        CASE strftime('%Y', acquisition_date)
            WHEN '2016' THEN 1                -- 연도가 2016인 경우 1을 더함
            ELSE 0
        END
    ) AS '2016'                               -- 결과를 '2016' 열로 표시

FROM artworks                                 -- 데이터를 가져올 테이블 지정

GROUP BY classification                       -- 작품의 분류(classification)별로 데이터를 그룹화

ORDER BY classification                       -- 분류(classification) 값을 기준으로 정렬