CODING TEST/MySQL
Lv1 - 잡은 물고기 중 가장 큰 물고기의 길이 구하기
iamyuunzo
2025. 7. 16. 21:16
📌 문제 정보
- 문제 이름 : 프로그래머스 - (SUM, MAX, MIN) 잡은 물고기 중 가장 큰 물고기의 길이 구하기
- 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/298515
📌 문제 요약
- FISH_INFO 테이블 : ID(물고기ID), FISH_TYPE(물고기 종류-숫자), LENGTH(길이-cm), TIME(잡은 날짜)
- FISH_INFO 테이블에서 잡은 물고기 중 가장 큰 물고기의 길이를 'cm' 를 붙여 출력하는 SQL문 작성. 이 때 컬럼명은 'MAX_LENGTH' 로 지정
예시)
| ID | FISH_TYPE | LENGTH | TIME |
| 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 |
📌 내 풀이 및 코드
SELECT CONCAT(FORMAT(MAX(LENGTH), 2), 'cm') AS MAX_LENGTH
FROM FISH_INFO;
📌 새로 배운 문법
<-- 이번 문제에서 새로 배운 Java 문법 정리 -->
** CONCAT() 문법 **
- SQL에서 문자열을 합치는 함수 (문자열 이어붙이기 위해 사용됨.)
- 각각의 인자들을 하나의 문자열로 연결하고, NULL이 하나라도 있으면 결과는 NULL임.
CONCAT(문자열1, 문자열2, ..., 문자열N)
# 예제
SELECT CONCAT('Hello', ' ', 'World') AS result; # result ----- Hello World
# 예제 2
SELECT CONCAT(FIRST_NAME, ' ', LAST_NAME) AS FULL_NAME
FROM EMPLOYEES; # FIRST_NAME = 'Jane', LAST_NAME = 'Kim'이라면 → FULL_NAME = 'Jane Kim
# 예제 3
SELECT CONCAT('이름: ', NULL) -- 결과는 NULL
# 예제 4 : 숫자도 문자열로 변환됨 (숫자, 문자열 자동 연결)
SELECT CONCAT('총합: ', 100) -- 결과: '총합: 100'
# 예제 5 : 여러 개 이어붙이기
SELECT CONCAT_WS('-', '2024', '07', '16') -- 결과: 2024-07-16