문제 :
잡은 물고기의 평균 길이를 출력하는 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
'SQL > 프로그래머스' 카테고리의 다른 글
[Lv.2] 가격이 제일 비싼 식품의 정보 출력하기 (쿼리 실행 순서) (0) | 2024.11.06 |
---|---|
[Lv.2] NULL 처리하기 (0) | 2024.11.06 |
[Lv.2] 이름에 el이 들어가는 동물 찾기 (LIKE) (0) | 2024.11.06 |
[Lv.1] 조건에 부합하는 중고거래 댓글 조회하기 (INNER JOIN, LIKE) (0) | 2024.11.04 |
[Lv.1] 자동차 대여 기록에서 장기/단기 대여 구분하기 (WHERE, DATEDIFF, LIKE, CASE WHEN) (0) | 2024.11.04 |