티스토리 뷰
문제 풀이
낚시앱에서 사용하는 FISH_INFO 테이블은 잡은 물고기들의 정보를 담고 있습니다. FISH_INFO 테이블의 구조는 다음과 같으며 ID, FISH_TYPE, LENGTH, TIME은 각각 잡은 물고기의 ID, 물고기의 종류(숫자), 잡은 물고기의 길이(cm), 물고기를 잡은 날짜를 나타냅니다.
Column name Type Nullable
ID INTEGER FALSE
FISH_TYPE INTEGER FALSE
LENGTH FLOAT TRUE
TIME DATE FALSE
단, 잡은 물고기의 길이가 10cm 이하일 경우에는 LENGTH 가 NULL 이며, LENGTH 에 NULL 만 있는 경우는 없습니다.
문제
잡은 물고기의 평균 길이를 출력하는 SQL문을 작성해주세요.
평균 길이를 나타내는 컬럼 명은 AVERAGE_LENGTH로 해주세요.
평균 길이는 소수점 3째자리에서 반올림하며, 10cm 이하의 물고기들은 10cm 로 취급하여 평균 길이를 구해주세요.
예시
예를 들어 FISH_INFO 테이블이 다음과 같다면
ID FISH_TYPE LENGTH TIME
0 0 30 2021/12/04
1 0 50 2020/03/07
2 0 40 2020/03/07
3 1 20 2022/03/09
4 1 NULL 2022/04/08
5 2 NULL 2021/04/28
10cm 이하의 물고기는 10cm 로 취급하므로 총 물고기의 길이의 합은 30 + 50 + 40 + 20 + 10 +10 = 160 이며 총 물고기의 수는 6마리이므로 잡은 물고기의 평균 길이는 160/6 = 26.666.. 입니다. 이를 소수점 3째자리에서 반올림하면 26.67 이므로 결과는 다음과 같아야 합니다.
AVERAGE_LENGTH
26.67
문제 풀이
SELECT ROUND(AVG(IFNULL(LENGTH, 10)),2) AS AVERAGE_LENGTH
FROM FISH_INFO;
설명
여기서 NULL 인 값을 10으로 바꿔줘야 하는데 몰라서 찾아보니 IFNULL 이라는 함수가 있었다.
- IFNULL() : NULL 값을 다른 값으로 대체할 때 사용하는 함수
IFNULL(표현식, 대체값)
IFNULL 함수를 활용하여 NULL 값을 1O으로 대체 후 평균 값을 구하여 반올림을 해주었다.
'개발 > SQL' 카테고리의 다른 글
프로그래머스 - 최댓값 구하기 (0) | 2025.04.22 |
---|---|
프로그래머스 - 한 해에 잡은 물고기 수 구하기 (0) | 2025.04.21 |
프로그래머스 - Python 개발자 찾기 (0) | 2025.04.17 |
프로그래머스 - 특정 옵션이 포함된 자동차 리스트 구하기 (0) | 2025.04.16 |
프로그래머스 - 모든 레코드 조회하기 (0) | 2025.04.16 |