https://choija.tistory.com/19

MySQL의 GROUP_CONCAT() 함수는 그룹화된 행의 값들을 하나의 문자열로 결합하는 데 사용됩니다. 주로 그룹화된 결과를 하나의 컬럼에 표시할 때 유용합니다.

간단한 사용 예를 살펴보겠습니다. 예를 들어, 학생들이 각 과목에 대해 여러 번 성적을 받았다고 가정해 봅시다. 이 때 GROUP_CONCAT() 함수를 사용하여 각 과목에 대한 모든 성적을 하나의 문자열로 결합할 수 있습니다.

예를 들어, 다음은 students_scores 테이블의 구조와 데이터를 가정한 후 GROUP_CONCAT() 함수를 사용하여 학생별로 과목과 해당 성적을 결합하는 쿼리입니다.

sqlCopy code
SELECT student_id, GROUP_CONCAT(subject, ':', score SEPARATOR ', ') AS scores
FROM students_scores
GROUP BY student_id;

위의 쿼리는 각 학생별로 그룹화되어 있는 과목과 성적을 결합하여 **scores**라는 하나의 컬럼으로 표시합니다. SEPARATOR 매개변수는 각 값 사이에 넣을 구분자를 지정합니다. 기본적으로 구분자는 쉼표입니다.

결과적으로 이 쿼리는 각 학생별로 그룹화된 성적을 다음과 같은 형태로 반환합니다.

yamlCopy code
student_id | scores
-----------|------------------------------------
1          | Math: A, Science: B, History: C
2          | Math: B, Science: A, English: A

이렇게 하면 각 학생이 각 과목에 대해 어떤 성적을 받았는지 한눈에 볼 수 있습니다.

GROUP_CONCAT은 어떻게 쓰는거지?

DEPARTMENT NAME
HR 이영애
HR 구경이
HR 케이

↓GROUP_CONCAT

DEPARTMENT NAME
HR 이영애,구경이,케이

이럴 때 쓸 수 있다.

select department, group_concat(name separator ' ') from tb group by department

그외 사용법

  1. 기본형 : group_concat(필드명)