> 데이터 베이스 > MySQL 튜토리얼 > MySQL은 외부 스크립트 없이 긴 형식의 데이터를 와이드 형식으로 변환할 수 있습니까?

MySQL은 외부 스크립트 없이 긴 형식의 데이터를 와이드 형식으로 변환할 수 있습니까?

Susan Sarandon
풀어 주다: 2024-12-25 10:09:15
원래의
361명이 탐색했습니다.

Can MySQL Transform Long-Format Data to Wide-Format Without External Scripts?

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

MySQL에서는 데이터가 길거나 긴 형식으로 저장되는 경우가 많습니다. 동일한 엔터티에 대해 별도의 행에 저장됩니다. 그러나 분석 및 보고 목적으로는 각 행이 엔터티를 나타내고 각 열이 속성을 나타내는 와이드 형식으로 데이터를 보유하는 것이 더 편리할 수 있습니다.

MySQL을 사용하여 긴 형식 데이터를 변환할 수 있나요? 외부 스크립팅 없이 와이드 포맷으로 전환하시겠습니까? 예, MySQL의 강력한 피벗 테이블 기능을 사용하면 가능합니다.

와이드 테이블 생성

  1. 키 목록 가져오기: 쿼리를 사용하여 긴 형식 테이블에 있는 모든 고유 키를 검색합니다. like:

    SELECT DISTINCT key FROM table;
    로그인 후 복사
  2. 넓은 테이블 만들기: 필수 열이 포함된 새 테이블을 만듭니다. 열 이름은 키와 일치해야 합니다. 예를 들어 President 및 통화 키가 있는 경우 테이블에는 President 및 통화라는 열이 포함되어야 합니다.

테이블 값 채우기

크로스탭 쿼리를 통해 와이드 테이블의 값을 채울 수 있습니다. 다음 쿼리는 이를 보여줍니다.

SELECT country,
       MAX(IF(key='President', value, NULL)) AS President,
       MAX(IF(key='Currency', value, NULL)) AS Currency,
       ...  -- Add other key-value pairs as needed

FROM table
GROUP BY country;
로그인 후 복사

이 쿼리는 긴 테이블의 각 행을 확인하고 해당 국가의 각 키-값 쌍에 대한 최신 값만 반환합니다. 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
US Obama Dollar
China Hu Yuan

결론

MySQL 피벗 테이블을 사용하면 다음이 간단합니다. 데이터를 긴 형식에서 넓은 형식으로 재구성하여 분석 및 보고에 더 적합하게 만듭니다. 이 방법은 효율적이며 속성 수에 제한 없이 테이블에 적용할 수 있습니다.

위 내용은 MySQL은 외부 스크립트 없이 긴 형식의 데이터를 와이드 형식으로 변환할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿