Technique/MySQL

[Lv.1] 잡은 물고기 중 가장 큰 물고기의 길이 구하기[concat]

먼치 2024. 9. 9. 15:17

 

 

문제 해결을 위한 개념 정리

 

CONCAT

  • 2개 이상 ~ 254개 이하의 여러 가지 문자열을 합쳐서 출력 가능
  • NULL값을 CONCAT에서 사용한다면 해당 부분은 빈 문자열로 암시적 변환
    • NULL값 끼리도 붙일 수 있음 ⇒ VARCHAR() 형식의 빈 문자열 반환
SELECT CONCAT("값1","값2","값3") AS 컬럼명 FROM 테이블명

# 출력결과
컬럼명
------
값1값2값3

★ 출력 시 문자열 값들 사이에 공백이 존재하지 않음!

     ⇒ 공백이 필요하다면 문자열 따옴표 사이에 공백 추가 필요

 

GROUP CONCAT

아래와 같은 memberLIst 라는 테이블이 존재할 때,

ID TEAM MEMBER
1 A M1
2 A M2
3 A M3
4 A M4
5 A M5

 

SELECT TEAM, GROUP_CONCAT(MEMBER) AS 'MEMBERS'
FROM memberList
GROUP BY TEAM;

결과는 다음과 같이 표시된다.

TEAM MEMBERS
A M1M2M3M4M5

GROUP BY로 묶어준 그룹(ex. TEAM)이 같은 값들끼리 CONCAT을 적용하면 해당하는 값들을 한 번에 붙여서 출력할 수 있다!

 

 

💡 GROUP_CONCAT(column SEPARATOR '구분문자') ⇒ 출력할 값들 사이 지정한 구분문자 출력

아래의 코드를 실행하면,

SELECT TEAM, GROUP_CONCAT(MEMBER SEPARATOR ',') AS 'MEMBERS'
FROM memberList
GROUP BY TEAM;

결과는 다음과 같이 콤마(,)로 각 값들 사이를 구분 짓는 결과가 출력된다.

TEAM MEMBERS
A M1, M2, M3, M4, M5

 

 

문제 해결 코드

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