>데이터 베이스 >MySQL 튜토리얼 >SQL을 사용하여 MySQL 데이터를 좁은 형식에서 넓은 형식으로 재구성하는 방법은 무엇입니까?

SQL을 사용하여 MySQL 데이터를 좁은 형식에서 넓은 형식으로 재구성하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-20 14:18:14134검색

How to Reshape MySQL Data from Narrow to Wide Format Using SQL?

MySQL 데이터를 좁은 형식에서 넓은 형식으로 재구성

소개

데이터는 다양한 형식으로 제공되는 경우가 많으며, 한 형식에서 다른 형식으로 변환해야 합니다. 일반적인 변환 중 하나는 좁은 테이블의 여러 열이 넓은 테이블의 여러 행이 되는 좁은/긴 형식에서 넓은 형식으로의 변환입니다. 이 기사에서는 MySQL에서 이러한 변환을 수행하는 방법을 살펴봅니다.

와이드 테이블 구조 생성

와이드 형식 테이블을 생성하려면 먼저 좁은 테이블에서 모든 고유 키를 식별합니다. 테이블. 이는 다음 쿼리를 사용하여 달성할 수 있습니다.

select distinct key from table;

이 쿼리의 결과는 좁은 테이블의 모든 고유 키 목록을 제공합니다. 이러한 키는 와이드 형식 테이블의 열 이름이 됩니다. 예를 들어 고유 키가 ['President', 'Currency']인 경우 와이드 형식 테이블은 다음 구조를 갖습니다.

country, President, Currency

와이드 테이블 데이터 채우기

와이드 형식 테이블의 값을 채우려면 MAX() 또는 GROUP_CONCAT():

SELECT country, 
       MAX( IF( key='President', value, NULL ) ) AS President,
       MAX( IF( key='Currency', value, NULL ) ) AS Currency
FROM table 
GROUP BY country;

이 예에서는 MAX() 집계 함수를 사용하여 각 국가 내 각 키의 최대값을 검색합니다. 이 쿼리는 다음과 같은 결과를 생성합니다.

country, President, Currency
US, Obama, Dollar
China, Hu, Yuan

대체 접근 방식: 크로스탭 또는 피벗 테이블

와이드 형식 테이블을 생성하는 또 다른 접근 방식은 다음을 사용하는 것입니다. 크로스탭 또는 피벗 테이블. 이는 사용하려는 열과 집계 함수를 지정할 수 있는 MySQL의 PIVOT 연산자와 같은 도구를 사용하여 달성할 수 있습니다.

결론

좁은 범위에서 데이터 재구성 SQL 집계 함수 또는 크로스탭/피벗 테이블을 사용하여 MySQL에서 와이드 형식으로 쉽게 구현할 수 있습니다. 이 변환은 차트 및 그래프와 같은 데이터 시각화 도구로 작업할 때 특히 유용합니다.

위 내용은 SQL을 사용하여 MySQL 데이터를 좁은 형식에서 넓은 형식으로 재구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.