MariaDB 필드 값 그룹화와 문자열 결합: GROUP_CONCAT() 함수
데이터베이스에서 특정 필드의 값을 그룹화하여 하나의 문자열로 결합해야 할 때가 있습니다. MariaDB에서 이를 간단하게 처리할 수 있는 방법이 바로 GROUP_CONCAT()
함수를 사용하는 것입니다. 이 글에서는 GROUP_CONCAT()
함수의 사용법을 설명하고, 중복된 값을 제외하는 방법에 대해서도 알아봅니다.
1. GROUP_CONCAT() 함수란?
GROUP_CONCAT()
함수는 데이터베이스의 여러 행에서 특정 필드의 값을 하나의 문자열로 결합해주는 함수입니다. 예를 들어, 여러 행에 걸쳐 있는 이름, 코드 등의 데이터를 쉼표로 구분된 하나의 문자열로 결합할 수 있습니다.
2. 기본 사용법
기본적으로 GROUP_CONCAT()
함수는 주어진 필드의 값을 모두 결합하여 하나의 문자열로 반환합니다. 아래의 예제는 중복된 값을 포함하여 필드 값을 결합하는 방법을 보여줍니다.
예제 테이블 생성
CREATE TABLE table_1 (
id INT AUTO_INCREMENT PRIMARY KEY,
column1 VARCHAR(255)
);
샘플 데이터 삽입
INSERT INTO table_1 (column1) VALUES
('a1'),
('a1'),
('b1'),
('b1'),
('c1'),
('d1');
GROUP_CONCAT() 함수 기본 사용 예제
SELECT GROUP_CONCAT(column1 ORDER BY column1 ASC SEPARATOR ', ') AS grouped_column
FROM table_1;
이 쿼리를 실행하면, 결과는 다음과 같이 나옵니다.
a1, a1, b1, b1, c1, d1
위의 결과에서는 중복된 값이 포함되어 있습니다.
▼ 결과 화면

3. 중복 값 제거하고 결합하기
중복된 값을 제거하고 결합하려면 GROUP_CONCAT()
함수에 DISTINCT
키워드를 추가합니다. 이렇게 하면 각 값이 한 번만 포함되도록 할 수 있습니다.
중복 값 제거 예제
SELECT GROUP_CONCAT(DISTINCT column1 ORDER BY column1 ASC SEPARATOR ', ') AS grouped_column
FROM table_1;
이 쿼리를 실행하면, 결과는 다음과 같이 나옵니다.
a1, b1, c1, d1
이제 중복된 값이 제거되고 각 값이 한 번씩만 포함된 것을 확인할 수 있습니다.
▼ 결과 화면

4. 결론
GROUP_CONCAT()
함수는 MariaDB에서 데이터를 그룹화하고, 여러 행의 값을 하나의 문자열로 결합할 때 매우 유용한 도구입니다. 중복 값을 제외하는 DISTINCT
옵션을 사용하면, 더 정제된 결과를 얻을 수 있습니다. 이 글에서 제공한 예제를 통해 GROUP_CONCAT()
함수의 기본 사용법과 활용 방법을 익히시기 바랍니다.
관련 이전 게시글
- MariaDB 데이터 그룹화: GROUP BY 절 사용법
- MariaDB SELECT 문 사용법 및 DISTINCT 중복 제거
- MariaDB 문자열 연결 방법: CONCAT, CONCAT_WS 함수
- MariaDB 집계 함수 사용법: COUNT, SUM, AVG, MAX, MIN
- MariaDB 조건부 집계: HAVING 절 사용법
이 글이 도움이 되셨다면 공유 부탁 드립니다.