SQL/solvesql Advent of SQL 2024

[SQL] solvesql Advent of SQL 2024 12일차

주댕이 2024. 12. 12. 15:57

# 링크

 

https://solvesql.com/collections/advent-of-sql-2024/

 

solvesql.com

 

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

 

solvesql.com

 

# 풀이

SELECT
  classification,
  COUNT(*) FILTER (WHERE strftime('%Y', acquisition_date) = '2014') AS "2014",
  COUNT(*) FILTER (WHERE strftime('%Y', acquisition_date) = '2015') AS "2015",
  COUNT(*) FILTER (WHERE strftime('%Y', acquisition_date) = '2016') AS "2016"
FROM artworks
GROUP BY classification
ORDER BY classification
  • SELECT
    • classification: classification 컬럼을 선택한다.
    • COUNT(*) FILTER (WHERE strftime('%Y', acquisition_date) = '2014') AS "2014": acquisition_date의 값이 2014인 데이터의 개수를 계산하고, 2014로 저장한다.
    • COUNT(*) FILTER (WHERE strftime('%Y', acquisition_date) = '2015') AS "2015": acquisition_date의 값이 2015인 데이터의 개수를 계산하고, 2015로 저장한다.
    • COUNT(*) FILTER (WHERE strftime('%Y', acquisition_date) = '2016') AS "2016": acquisition_date의 값이 2016인 데이터의 개수를 계산하고, 2016으로 저장한다.
  • FROM artworks: artworks 테이블에서 데이터를 가져온다.
  • GROUP BY classification: classification을 기준으로 그룹화한다.
  • ORDER BY classification: classification을 기준으로 오름차순 정렬한다.

 

728x90