[SQL문제풀기] 기증품 비율 계산하기

silver's avatar
Mar 03, 2025
[SQL문제풀기] 기증품 비율 계산하기
Contents
문제SQLite

문제

SQLite

내가 작성한 정답

select round((round(count(artwork_id)*100,3)/round((select count(artwork_id) from artworks),3)),3) ratio from artworks where credit like '%gift%'

개선한 정답

: count(artwork_id)*100은 정수의 결과이므로 정수를 정수로 나누면 정수의 결과값이 나온다→ 소수점 아래를 버린다.
→ 100을 곱할 때 100이 아니라 100.0을 곱해 실수로 변환해준다.
select round(count(artwork_id)*100.0/(select count(artwork_id) from artworks),3) ratio from artworks where credit like '%gift%'
 

gpt의 정답

: 서브쿼리가 아닌 case when으로 조건을 걸어서 조건을 만족하면 1을 주고 나머지는 null값으로 설정해서 카운트한다.
SELECT ROUND( (COUNT(CASE WHEN credit LIKE '%gift%' THEN 1 END) * 100.0) / COUNT(*) ,3) AS ratio FROM artworks;
Share article

silver