문제 : 

잡은 물고기의 평균 길이를 출력하는 SQL문을 작성해주세요.

평균 길이를 나타내는 컬럼 명은 AVERAGE_LENGTH로 해주세요.
평균 길이는 소수점 3째자리에서 반올림하며, 10cm 이하의 물고기들은 10cm 로 취급하여 평균 길이를 구해주세요.

 

SELECT ROUND(AVG(IF(LENGTH IS NULL,10,LENGTH)),2)AS AVERAGE_LENGTH
FROM FISH_INFO

 

결과 : 

 

다른 풀이 :

-- 일반 풀이
SELECT ROUND(AVG(
                CASE WHEN LENGTH IS NULL THEN 10
                WHEN LENGTH <=10 THEN 10 
                ELSE LENGTH
                END),2) AS AVERAGE_LENGTH 
FROM FISH_INFO

 

-- 서브쿼리를 활용한 풀이
SELECT ROUND(AVG(A.LENGTH),2) AS AVERAGE_LENGTH
FROM(
SELECT ID, FISH_TYPE,
    CASE WHEN LENGTH IS NULL THEN 10
         WHEN LENGTH <= 10 THEN 10 
         ELSE LENGTH 
         END AS LENGTH
FROM FISH_INFO ) A

+ Recent posts