SQL/solvesql Advent of SQL 2024

[SQL] solvesql Advent of SQL 2024 7일차

주댕이 2024. 12. 8. 17:29

# 링크

 

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

 

solvesql.com

 

https://solvesql.com/problems/ratio-of-gifts/

 

solvesql.com

 

# 풀이

SELECT
  ROUND(
    CAST(
      SUM(
        CASE WHEN credit LIKE '%gift%' THEN 1 ELSE 0 END
      ) AS FLOAT
    ) / COUNT(*) * 100.0, 
    3
  ) AS ratio
FROM artworks
  • SELECT~: 
    • ROUND(~,3): 소수점 셋째 자리까지 반올림한다.
    • CAST(~ AS FLOAT): 결과(정수값)를 실수(FLOAT)로 변환한다.
      * 정수 값끼리 나눗셈을 하면 소수점 이하가 버려질 수 있으므로, 이를 방지하기 위해 실수 타입으로 변환한다.
    • SUM(CASE WHEN credit LIKE '%gift%' THEN 1 ELSE 0 END): credit 컬럼의 값이 'gift'를 포함할 때 1, 포함하지 않을 때 0을 반환하여 값을 모두 더한다.
    • / COUNT(*) * 100.0: 값을 전체 레코드 수로 나눈 후, 백분율로 계산한다.
    • AS ratio: 계산 결과를 ratio로 저장한다.
  • FROM artworks: artworks 테이블에서 데이터를 가져온다.
728x90