집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 열 데이터를 행 기반 피벗 테이블로 변환하는 방법은 무엇입니까?
MySQL 열 데이터를 행 형식(피벗 테이블)으로 변환
이 문서에서는 다중 열 데이터가 포함된 MySQL 테이블을 행 및 열 형식 데이터로 변환하는 방법을 설명합니다. 결과 구조를 피벗 테이블이라고 하며 데이터에 대한 간결하면서도 포괄적인 보기를 제공합니다.
문제 설명:
여러 열이 있는 테이블이 있는데, 각 열은 데이터 카테고리를 나타냅니다. 목표는 이를 피벗 테이블 형식으로 변환하는 것입니다. 여기서 행은 카테고리(col1, col2, col3, col4)를 나타내고 열은 월( 1월, 2월).
솔루션 프레임워크:
MySQL에서 이 변환을 구현하려면 다음 2단계 프로세스를 따라야 합니다.
반관점(UNION ALL):
관점(집계 및 CASE):
구현된 쿼리:
반관점(UNION ALL):
<code class="language-sql">SELECT id, month, col1 AS value, 'col1' AS descrip FROM yourtable UNION ALL SELECT id, month, col2 AS value, 'col2' AS descrip FROM yourtable UNION ALL SELECT id, month, col3 AS value, 'col3' AS descrip FROM yourtable UNION ALL SELECT id, month, col4 AS value, 'col4' AS descrip FROM yourtable;</code>
관점(집계 및 CASE):
<code class="language-sql">SELECT descrip, MAX(CASE WHEN month = 'Jan' THEN value ELSE 0 END) AS Jan, MAX(CASE WHEN month = 'Feb' THEN value ELSE 0 END) AS Feb FROM ( SELECT id, month, col1 AS value, 'col1' AS descrip FROM yourtable UNION ALL SELECT id, month, col2 AS value, 'col2' AS descrip FROM yourtable UNION ALL SELECT id, month, col3 AS value, 'col3' AS descrip FROM yourtable UNION ALL SELECT id, month, col4 AS value, 'col4' AS descrip FROM yourtable ) AS source GROUP BY descrip;</code>
결과:
이 쿼리는 입력 테이블을 피벗 테이블 형식으로 변환합니다.
DESCRIP | Jan | Feb |
---|---|---|
col1 | A | C |
col2 | B | A |
col3 | 0 | G |
col4 | B | E |
위 내용은 MySQL 열 데이터를 행 기반 피벗 테이블로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!