MySQL에서 데이터 재구성: 긴/긴 형식을 와이드 형식으로 변환
데이터 분석에서는 긴 형식의 데이터를 재구성해야 하는 경우가 많습니다. /tall 형식을 와이드 형식으로 변환합니다. 이 변환은 여러 행과 열이 있는 테이블을 더 적은 수의 행과 더 많은 열이 있는 테이블로 변환합니다.
문제 설명
세로/세로 형식의 데이터가 있는 MySQL 테이블을 생각해 보세요. 여기서 각 행은 국가, 키, 값이 포함된 단일 관찰을 나타냅니다. 목표는 국가별로 하나의 행을, 각 키별로 열을 사용하여 데이터를 넓은 형식으로 재구성하는 것입니다.
SQL 솔루션
MySQL은 기본 제공 기능을 제공합니다. 이 변환을 수행하기 위해 크로스탭 또는 피벗 테이블이라고 합니다. 방법은 다음과 같습니다.
1. 키 식별
쿼리를 사용하여 원본 테이블에서 고유한 키를 선택합니다.
이 쿼리의 출력은 핵심 요소 목록을 제공합니다.
2. 와이드 테이블 생성
다음 구조로 새 테이블을 생성합니다.
key1, ..., keyN을 1단계에서 얻은 실제 키 이름으로 바꿉니다. newPkey 열은 와이드 테이블의 각 행을 고유하게 식별하는 데 사용되는 자동 증가 기본 키입니다.
3. 테이블 값 채우기
크로스탭 쿼리를 사용하여 넓은 테이블을 채웁니다.
이 쿼리는 조건부 집계(MAX 및 IF)를 활용하여 키 열에 값을 할당합니다. 각 국가마다. 동일한 국가에 대해 중복된 키가 있는 행은 MAX 기능을 사용하여 제거됩니다.
입력 예 및 출력
입력:
country | attrName | attrValue | key |
---|---|---|---|
US | President | Obama | 2 |
US | Currency | Dollar | 3 |
China | President | Hu | 4 |
China | Currency | Yuan | 5 |
출력:
country | President | Currency | newPkey |
---|---|---|---|
US | Obama | Dollar | 1 |
China | Hu | Yuan | 2 |
이 예는 MySQL 크로스탭을 사용하여 긴 형식부터 넓은 형식까지.
위 내용은 MySQL에서 길거나 긴 데이터를 와이드 형식으로 어떻게 재구성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!