상세 컨텐츠

본문 제목

쿼리에서 group concat 함수 사용하는 방법은?

IT/DB

by JR 2025. 4. 17. 06:17

본문

300x250
반응형

 

 

 

GROUP_CONCAT() 함수는 여러 값을 한 줄로 합쳐서 보여줄 수 있는 아주 유용한 함수 입니다.


특히 GROUP BY 쿼리에서 여러 값을 쉼표(,)나 원하는 구분자로 묶어 표현할 때 씁니다.

 


✅ 기본 사용법

SELECT department_id, GROUP_CONCAT(employee_name) FROM employees GROUP BY department_id;

 

🔍 결과

department_id GROUP_CONCAT(employee_name)
1 Alice,Bob,Charlie
2 David,Eve

🧩 자주 쓰는 옵션들

1. 구분자 바꾸기

GROUP_CONCAT(employee_name SEPARATOR ' / ') -- → Alice / Bob / Charlie

2. 중복 제거

GROUP_CONCAT(DISTINCT employee_name)

3. 정렬해서 묶기

GROUP_CONCAT(employee_name ORDER BY hire_date ASC)

4. 길이 제한 조절 (MySQL 기본 최대 1024자 → 변경 가능)

SET SESSION group_concat_max_len = 10000;

🎯 실무 예제

예: 사용자마다 구매한 상품 이름 나열

SELECT 
u.user_id, 
u.name, 
GROUP_CONCAT(p.product_name ORDER BY p.product_name SEPARATOR ', ') 
FROM users u JOIN purchases pu ON u.user_id = pu.user_id JOIN products p ON pu.product_id = p.product_id 
GROUP BY u.user_id, u.name;

💡 주의

  • GROUP_CONCAT()은 MySQL에서 사용하는 함수야
  • PostgreSQL은 STRING_AGG(), SQL Server는 STRING_AGG() 또는 FOR XML PATH() 방식 사용

 

 

 

 

300x250
반응형

관련글 더보기