본문 바로가기

SQL Kit/SUM,MAX,MIN

잡은 물고기 중 가장 큰 물고기의 길이 구하기 [ 프로그래머스 | SQL Kit | Level 1 ]

1. 문제목적

MAX 함수와 조건부 필터링의 조합을 통해 원하는 데이터를 추출하고 문자열 결합 값을 표현하기 위해 CONCAT() 함수을 사용하는 방법을 배우는 것이 목적이다.


2. 핵심개념

  • 집계 함수(Aggregate Function)MAX(column_name): 지정된 열의 최대값을 반환한다. 숫자뿐만 아니라 날짜나 길이 등의 값에도 적용 가능하다.
  • SQL에서 데이터를 요약하거나 계산할 때 사용한다.
  • 문자열 결합예: CONCAT(MAX(column_name), 'cm')
  • SQL에서는 결과값을 보다 가독성 있게 표현하기 위해 문자열 결합을 사용할 수 있다. MySQL에서는 CONCAT() 함수를 이용한다.
  • NULL 처리
  • SQL에서는 NULL 값을 무시하고 연산하며, MAX 함수 역시 NULL을 자동으로 제외한다.

3. 문제해결절차

  1. 문제 분석
    • FISH_INFO 테이블에서 가장 큰 물고기의 길이를 구하는 문제이다.
    • 결과값에 'cm' 단위를 추가하여 출력한다.
  2. 핵심 접근법
    • 집계 함수 MAX를 사용하여 LENGTH 열에서 최대값을 구한다.
    • CONCAT를 사용해 결과값에 'cm'를 결합한다.
    • NULL 처리는 자동으로 이루어지므로 별도의 처리가 필요하지 않다.
  3. 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 함수는 이를 무시하고 계산한다.