DB/mysql(mariaDB)

피벗(PIVOT) 테이블

자코린이 2022. 6. 19. 17:45

다른 분이 만들어분 SQL에 GROUP_CONCAT()함수가 나와 인터넷에 찾아보니 이는 테이블 피벗을 위한 함수임을 알았습니다.

여기서 피벗이란 '테이블 데이터를 행에서 열로 바꾸는 과정'입니다.

즉, 보통의 테이블은 세로로 데이터가 나오지만 특정한 데이터를 가로로 묶어 보여주기 위한 함수입니다.

idx group name
1 1 white
2 1 black
3 2 green
4 2 orange

이처럼 데이터가 있으면 이를 group으로 묶어서 보여주고 싶을 경우 아래 SQL처럼 사용하면 됩니다.

SELECT group, GROUP_CONCAT(name) FROM test GROUP BY group

이 결과 아래 테이블이 나옵니다.

group name
1 white, black
2 green, orange

 

GROUP_CONCAT() 함수의 기본 구분자는 , 입니다. 

구분자, order by, 중복제거 등 인수가 있으니 참조하세요.