
[프로그래머스 SQL] Lv.1 잡은 물고기 중 가장 큰 물고기의 길이 구하기
카테고리: SQL · MAX · CONCAT
플랫폼: 프로그래머스
난이도: Level 1
문제 설명
낚시앱에서 사용하는 FISH_INFO 테이블은 잡은 물고기들의 정보를 담고 있습니다.
Column nameTypeNullable
| ID | INTEGER | FALSE |
| FISH_TYPE | INTEGER | FALSE |
| LENGTH | FLOAT | TRUE |
| TIME | DATE | FALSE |
잡은 물고기의 길이가 10cm 이하일 경우에는 LENGTH 가 NULL이며, LENGTH 에 NULL만 있는 경우는 없습니다.
FISH_INFO 테이블에서 잡은 물고기 중 가장 큰 물고기의 길이를 'cm' 를 붙여 출력하는 SQL 문을 작성해주세요.
이 때 컬럼명은 'MAX_LENGTH' 로 지정해주세요.
예시
입력
IDFISH_TYPELENGTHTIME
| 0 | 0 | 13.37 | 2021/12/04 |
| 1 | 0 | 50.00 | 2020/03/07 |
| 2 | 0 | 40.00 | 2020/03/07 |
| 3 | 1 | 43.33 | 2022/03/09 |
| 4 | 1 | NULL | 2022/04/08 |
| 5 | 2 | 32.00 | 2020/04/28 |
출력
MAX_LENGTH
| 50.00cm |
내 풀이
sql
SELECT CONCAT(MAX(LENGTH), 'cm') AS MAX_LENGTH
FROM FISH_INFO;
공부 포인트
1. MAX() 집계 함수
- MAX(LENGTH) 는 NULL 값을 자동으로 무시하고 최댓값을 반환
- 별도로 WHERE LENGTH IS NOT NULL 을 쓰지 않아도 됨
2. CONCAT() 함수
- 문자열을 이어붙이는 함수
- CONCAT(값, 'cm') 형태로 단위를 붙일 수 있음
- 숫자 타입도 자동으로 문자열로 변환하여 이어붙여줌
추가 팁
- MAX() 대신 ORDER BY LENGTH DESC LIMIT 1 로도 동일한 결과를 얻을 수 있지만, 집계 함수를 쓰는 것이 더 간결하고 권장됨
- 소수점 자리수를 고정하고 싶다면 FORMAT(MAX(LENGTH), 2) 또는 ROUND() 를 활용할 수 있습니다.
마무리 요약
이번 문제는 MAX() 집계 함수와 CONCAT() 문자열 함수를 조합하는 실무형 SQL 예제다.
특히 집계 함수가 NULL을 자동으로 제외한다는 점은 데이터 분석 시 자주 활용되는 핵심 개념이므로 꼭 외워야 한다.
이상입니다. 혹시나 제가 잘못된 내용을 작성했거나 더 좋은 방법이 있다면 댓글 남겨주세요.
지금까지 이 글을 봐주셔서 감사합니다.
'코딩테스트 > SQL' 카테고리의 다른 글
| [프로그래머스_SQL] Lv.2 진료과별 총 예약 횟수 출력하기 (0) | 2026.03.31 |
|---|---|
| [프로그래머스_SQL] Lv.2 가격이 제일 비싼 식품의 정보 출력하기 (0) | 2026.03.21 |
| [프로그래머스_SQL] Lv.1 조건에 맞는 아이템들의 가격의 총합 구하기 (0) | 2026.03.17 |
| [프로그래머스_SQL] Lv.2 동명 동물 수 찾기 (0) | 2026.03.15 |