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

하나·2025년 1월 3일
0

SQL TEST

목록 보기
4/9
post-thumbnail

🪄문제 분석 요약

FISH_INFO 테이블에서 잡은 물고기 중 가장 큰 물고기의 길이를 'cm'를 붙여 출력

  • 컬럼명은 'MAX_LENGTH'로 지정

🪄접근법

  • SELECT 문에서 cm을 LENGTH컬럼에 붙인 후 해당 컬럼에서 최대 길이를 MAX로 찾는다.
  • 컬럼명을 MAX_LENGTH로 바꾼다!

🪄SQL

SELECT MAX(CONCAT(LENGTH, 'cm')) AS MAX_LENGTH
FROM FISH_INFO;

🪄틀린 부분 수정 OR 다른 풀이

  • 다른 풀이 : MAX, CONCAT의 순서 변경
SELECT CONCAT(MAX(LENGTH), 'cm') AS MAX_LENGTH
FROM FISH_INFO;

이렇게 MAX, CONCAT의 순서를 바꾸어도 무방하게 작동된다!

🪄관련 개념

MAX, MIN

  • MAX(컬럼명) : 해당 컬럼에서 최대값 추출
  • MIN(컬럼명) : 해당 컬럼에서 최소값 추출

💡 SELECT문에서 사용!

문자열 합치기 : CONCAT, CONCAT_WS

  • CONCAT(문자열1, 문자열2...)
    • 둘 이상의 문자열을 입력한 순서대로 합쳐서 반환
    • 문자열에 ""를 넣게되면 띄어쓰기로 합쳐짐!
    • NULL이 문자열에 있는 경우 NULL은 무시하지 않되 NULL 결과를 반환하지 않음
      • CONCAT('Value: ', NULL, ' Test'); -- 'Value: Test'
  • CONCAT_WS(구분자, 문자열1, 문자열2...)
    • 여러 값 결합, 각 결합 값 사이에 구분자를 포함하여 반환
    • NULL값이 있는 경우 무시
      • CONCAT_WS('-', 'Name', NULL, 'Age'); -- 'Name-Age'

🌟CONCAT 사용 시 암시적 형변환이 이루어진다!

형변환 : 명시적 형변환 & 암시적 형변환

  • 형변환 : 두 개의 데이터간 데이터 타입이 일치하도록 변환하는 것
  • 명시적 형변환 : 형변환 함수를 사용하여 데이터 타입을 일치시킴
    • TO_NUMBER, TO_DATE, TO_CHAR 등으로 개발자가 SQL에서 형변환 함수를 사용하여 형변환 이루어짐
  • 암시적 형변환 : 개발자가 형변환을 하지 않은 경우 데이터베이스에서 자동으로 형변환하는 것
    • 문자열과 숫자열의 결합 시 문자열로 변환, 숫자와 실수의 결합 시 실수로 변환 등이 해당
    • 변환은 데이터 손실이 적은 방향으로 변환됨!(정수는 실수로, 실수는 문자열로 변환)

왜 문제에서 FLOAT+ 문자열이 CONCAT으로 가능한지 의문이었는데 이런 이유로 가능했구나를 알게됨!! 문자+숫자라고 안된다 하지말고 일단 합해보자!

profile
Start with hello world:)

0개의 댓글

관련 채용 정보