[SQL] 잡은 물고기 중 가장 큰 물고기의 길이 구하기

Ray·2025년 3월 5일

SQL

목록 보기
7/39

🔎 문제설명

  • 출처: 프로그래머스
  • 사용언어(RDBMS): SQL(MySQL)
  • 문제:

    FISH_INFO 테이블에서 잡은 물고기 중 가장 큰 물고기의 길이를 'cm' 를 붙여 출력하는 SQL 문을 작성해주세요. 이 때 컬럼명은 'MAX_LENGTH' 로 지정해주세요.




✅ 제출답안

# 가장 큰 물고기의 길이를 'cm' 를 붙여 출력
# 컬럼명은 'MAX_LENGTH' 로 지정
SELECT CONCAT(FORMAT(MAX(LENGTH), 2), 'cm') AS MAX_LENGTH
FROM FISH_INFO



🚀 풀이기록

문제를 풀 때 두가지 부분에서 어려운 점이 있었다.

첫번째는 정수로 나타나는 값을 어떻게 소수점 둘째자리까지 나타낼지,
두번째는 어떻게하면 'cm'를 붙여줄지였다.

  1. 정수를 실수값으로 나타내기

    처음에는 ROUND() 를 사용했는데, 최댓값에 소수점이 없다보니, 적용이 되지 않았다. 방법을 찾지 못해 튜토리얼에서 검색하여 FORMAT(변환할 실수, 나타낼 소수점 자리) 를 찾아 해결했다. 이 때 소수점은 반올림해서 표현하고, FORMAT()을 사용하면 수치형이 문자형으로 변환됨을 알 수 있었다(CONCAT()을 사용하기 전에 한 생각).


  2. 출력값에 ‘cm’ 붙여주기

    가장 큰 물고기의 길이의 단위인 ‘cm’를 붙여주는 방법이 떠오르지 않아 Gemini에게 물어보니, CONCAT(*expression1*, *expression2*, *expression3*,...)을 알려 주었다. 각각의 파라미터에 결합할 표현식들을 넣어주면 된다. 그래서 1에서 구한 소수점 둘째 자리까지 나타낸 가장 큰 물고기의 길이와 ‘cm’를 넣어주었다.


    그런데 아래와 같이 쿼리문을 작성했는데도 소수2째자리까지 정상적으로 출력되었다.
SELECT CONCAT(MAX(LENGTH), 'cm') AS MAX_LENGTH
FROM FISH_INFO

다시 확인해봤더니, LENGTH속성의 데이터타입은 FLOAT형이었다...

profile
미래의 독자인 나를 위해 글을 씁니다.

0개의 댓글