1. 문제목적
MAX 함수와 조건부 필터링의 조합을 통해 원하는 데이터를 추출하고 문자열 결합 값을 표현하기 위해 CONCAT() 함수을 사용하는 방법을 배우는 것이 목적이다.
2. 핵심개념
- 집계 함수(Aggregate Function)MAX(column_name): 지정된 열의 최대값을 반환한다. 숫자뿐만 아니라 날짜나 길이 등의 값에도 적용 가능하다.
- SQL에서 데이터를 요약하거나 계산할 때 사용한다.
- 문자열 결합예: CONCAT(MAX(column_name), 'cm')
- SQL에서는 결과값을 보다 가독성 있게 표현하기 위해 문자열 결합을 사용할 수 있다. MySQL에서는 CONCAT() 함수를 이용한다.
- NULL 처리
- SQL에서는 NULL 값을 무시하고 연산하며, MAX 함수 역시 NULL을 자동으로 제외한다.
3. 문제해결절차
- 문제 분석
- FISH_INFO 테이블에서 가장 큰 물고기의 길이를 구하는 문제이다.
- 결과값에 'cm' 단위를 추가하여 출력한다.
- 핵심 접근법
- 집계 함수 MAX를 사용하여 LENGTH 열에서 최대값을 구한다.
- CONCAT를 사용해 결과값에 'cm'를 결합한다.
- NULL 처리는 자동으로 이루어지므로 별도의 처리가 필요하지 않다.
- SQL문 설계
- SELECT CONCAT(MAX(LENGTH), 'cm') AS MAX_LENGTH FROM FISH_INFO를 작성.
- 조건이 추가되면 WHERE 절을 활용하여 데이터를 필터링.
4. 코드작성
-- FISH_INFO 테이블에서 가장 큰 물고기의 길이를 cm 단위로 출력하는 SQL문
SELECT
CONCAT(MAX(LENGTH), 'cm') AS MAX_LENGTH -- LENGTH 열에서 최대값을 계산하고, 'cm' 문자열을 결합하여 결과에 별칭 MAX_LENGTH를 부여
FROM
FISH_INFO; -- FISH_INFO 테이블에서 데이터를 조회
- SELECT 문으로 필요한 열을 선택하고, MAX 함수와 CONCAT을 조합하여 결과를 가공.
- FROM 절을 통해 데이터를 가져올 테이블을 지정.
5. 코드분석
- CONCAT(MAX(LENGTH), 'cm'):CONCAT 함수를 사용해 결과값에 'cm' 문자열을 결합.
- 예를 들어, 최대값이 50.00이라면 결과는 50.00cm로 출력된다.
- MAX(LENGTH)로 LENGTH 열의 최대값을 계산.
- AS MAX_LENGTH:
- 결과값에 별칭을 부여하여 출력 열의 이름을 MAX_LENGTH로 지정.
- FROM FISH_INFO:
- 데이터를 조회할 테이블을 지정. 이 테이블에서 LENGTH 열의 최대값을 구한다.
- NULL 처리:
- LENGTH 열에 NULL이 있어도 MAX 함수는 이를 무시하고 계산한다.
'SQL Kit > SUM,MAX,MIN' 카테고리의 다른 글
최솟값 구하기 [ 프로그래머스 | SQL Kit | Level 2 ] (0) | 2025.03.05 |
---|---|
연도별 대장균 크기의 편차 구하기 [ 프로그래머스 | SQL Kit | Level 2 ] (0) | 2025.03.05 |
가격이 제일 비싼 식품의 정보 출력하기 [ 프로그래머스 | SQL Kit | Level 2 ] (0) | 2025.03.05 |
최댓값 구하기 [ 프로그래머스 | SQL Kit | Level 1 ] (0) | 2025.03.03 |
가장 비싼 상품 구하기 [ 프로그래머스 | SQL Kit | Level 1 ] (0) | 2025.03.03 |