본문 바로가기
IT/MYSQL

MYSQL - GROUP_CONCAT 사용 방법, 데이터 연결하기

by 꿀코 2023. 3. 5.
반응형

MYSQL의 GROUP_CONCAT 함수는 하나의 컬럼의 결과를 연결하여 조회하는 기능입니다. CONCAT 함수는 컬럼과 컬럼을 연결했던 반면, GROUP_CONCAT은 하나의 컬럼을 연결하여 조회한다는 차이점이 있습니다. 그리고 함수 내에 DISTINCT, ORDER BY 등의 옵션을 사용하여 다양한 결과 값을 얻을 수 있습니다.

 

 

GROUP_CONCAT 기본 사용법

GROUP_CONCAT의 기본 문법과 옵션입니다.

  • SELECT GROUP_CONCAT( [DISTINCT 옵션]  COL1  [ORDER BY 옵션]  [SEPARATOR 옵션] ) FROM 테이블명 GROUP BY GROUP_COL;

 1) DISTINCT 옵션 : GROUP_CONCAT 결과의 중복값 제거

 2) ORDER BY 옵션 : GROUP_CONCAT 결과의 순서 정렬

 3) SEPARATOR 옵션 : GROUP_CONCAT 결과의 연결 구분자 설정

 

[Tip]

GROUP_CONCAT의 기본 구분자는 "," 콤마입니다.

 

 

GROUP_CONCAT 옵션 사용법

GROUP_CONCAT의 옵션들을 사용하여 다양한 예시를 살펴보겠습니다.

 

SELECT * FROM TEMP;
CITY GU
서울 강남
서울 송파
서울 용산
서울 마포
서울 강남

 

1. 기본 옵션

기본 옵션으로 조회할 경우 데이터간의 구분자는 콤마(,)로 구분합니다.

SELECT CITY, GROUP_CONCAT(GU) FROM TEMP GROUP BY CITY;
CITY GU
서울 강남,송파,용산,마포,강남

 

2. DISTINCT 옵션

DISTINCT 옵션을 사용할 경우 중복된 데이터를 삭제합니다.

SELECT CITY, GROUP_CONCAT(DISTINCT GU) FROM TEMP GROUP BY CITY;
CITY GU
서울 강남,송파,용산,마포

 

3. ORDER BY 옵션

ORDER BY 옵션을 사용할 경우 데이터를 정렬하여 조회합니다.

SELECT CITY, GROUP_CONCAT(DISTINCT GU ORDER BY GU) FROM TEMP GROUP BY CITY;
CITY GU
서울 강남,마포,송파,용산

 

4. SEPARATOR 옵션

SEPARATOR 옵션을 사용할 경우 구분자를 설정할 수 있습니다.

SELECT CITY, GROUP_CONCAT(GU SEPARATOR '|') FROM TEMP GROUP BY CITY;
CITY GU
서울 강남|송파|용산|마포|강남

 

 

MYSQL의 GROUP_CONCAT에 대해 알아보았는데, 오라클의 경우 10G 버전에서는 WM_CONCAT, 11G 버전에서는 LISTAGG 함수를 통해 GROUP_CONCAT과 같은 결과를 얻을 수 있습니다.

반응형

댓글