>데이터 베이스 >MySQL 튜토리얼 >내 데이터를 재구성하기 위해 MySQL에서 열의 피벗을 어떻게 해제할 수 있습니까?

내 데이터를 재구성하기 위해 MySQL에서 열의 피벗을 어떻게 해제할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-20 05:36:10117검색

How Can I Unpivot Columns in MySQL to Restructure My Data?

MySQL 데이터 재구성: 열 확장

테이블 데이터의 형태를 변경해야 하는 경우 열 피벗 해제가 필요합니다. 이 기술은 열을 행으로 변환하여 보다 유연한 데이터 표현을 제공합니다. MySQL은 명시적인 확장 기능을 제공하지 않지만 영리한 쿼리 구성을 통해 동일한 효과를 얻을 수 있습니다.

방법 1: UNION ALL을 사용하여 쿼리

한 가지 방법은 여러 SELECT 문의 결과를 함께 추가하는 UNION ALL 쿼리를 사용하는 것입니다. 이 예에서는 확장해야 하는 각 열에 대해 별도의 SELECT 문을 만듭니다.

<code class="language-sql">select id, 'a' col, a value
from yourtable
union all
select id, 'b' col, b value
from yourtable
union all
select id, 'c' col, c value
from yourtable</code>

이 쿼리는 각 행이 열 값 쌍을 나타내는 새 테이블을 작성합니다. 결과 테이블의 레이아웃은 다음과 같습니다.

ID col value
1 a a1
1 b b1
1 c c1
2 a a2
2 b b2
2 c c2

방법 2: CROSS JOIN 사용

또 다른 접근 방식은 여러 테이블의 데카르트 곱을 생성하는 CROSS JOIN을 사용하는 것입니다. 테이블을 열 이름이 포함된 테이블과 결합하면 다음을 얻을 수 있습니다.

<code class="language-sql">select t.id,
  c.col,
  case c.col
    when 'a' then a
    when 'b' then b
    when 'c' then c
  end as data
from yourtable t
cross join
(
  select 'a' as col
  union all select 'b'
  union all select 'c'
) c</code>

이 쿼리는 UNION ALL 쿼리와 동일한 출력을 생성하므로 추가 분석이나 데이터 조작을 위한 유연한 데이터 표현을 제공합니다.

MySQL에서 이러한 전개 기술을 구현하면 데이터를 더 쉽게 탐색할 수 있는 형식으로 재구성하여 데이터에서 의미 있는 통찰력을 효과적으로 추출할 수 있습니다.

위 내용은 내 데이터를 재구성하기 위해 MySQL에서 열의 피벗을 어떻게 해제할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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