데이터 분석 기술 블로그

잡은 물고기의 평균 길이 구하기 _ Lv1. 프로그래머스 * 본문

SQL/문제풀이

잡은 물고기의 평균 길이 구하기 _ Lv1. 프로그래머스 *

데이터분석가 이채은 2024. 8. 28. 09:00

 

Solution

SELECT ROUND(AVG(CASE
                    WHEN LENGTH IS NULL THEN 10
                    ELSE LENGTH
                END), 2) AS AVERAGE_LENGTH
FROM FISH_INFO;

 

ROUND 키워드는 반올림할 때 사용하는 키워드이다. 소수 점 아래 세 번째 자리에서 반올림을 해야 하므로 소수 점 아래 두 번째 자리까지 나타나야 해서 2를 사용했다. ROUND(_____ , 2) 

 

AVG는 평균을 구해주는 함수이다.

 

여기서 KEY POINT는 NULL일 때 '10cm'로 계산해야 한다는 것이다. Python, R, Java에서 IF 문을 사용했던 기억이 있어서 찾아봤더니 MySQL 같은 경우는 IF문을 사용하지만 지원하지 않는 데이터베이스가 있다. 대부분 CASE - END 문을 사용한다.

CASE - END 문은 SQL에서 조건에 따라 값을 반환하는 조건문이다. 여러 조건을 평가하고 그에 맞는 결과를 반환하는 데 사용한다. 사용 방법은 아래와 같다.

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE default_result
END