MySQL 열을 행으로 재구성
데이터 변환은 데이터베이스 관리에서 일반적인 작업입니다. MySQL에서는 향상된 데이터 분석이나 표현을 위해 열 데이터를 행으로 변환하는 작업(피벗 해제라고 알려진 프로세스)이 필요한 경우가 많습니다. MySQL에는 전용 unpivot 기능이 없지만 UNION ALL
쿼리 또는 CROSS JOIN
.
UNION ALL
방법
한 가지 효과적인 전략은 UNION ALL
연산자를 사용하는 것입니다.
<code class="language-sql">SELECT id, 'a' AS col, a AS value FROM yourtable UNION ALL SELECT id, 'b' AS col, b AS value FROM yourtable UNION ALL SELECT id, 'c' AS col, c AS value FROM yourtable;</code>
이 쿼리는 열 이름(id
) 및 해당 값(col
)과 함께 value
열을 검색합니다. 결과는 각 행이 단일 열-값 쌍을 나타내는 재구성된 데이터 세트입니다.
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>
여기서 yourtable
(별칭 t
)는 열 이름 목록(col
)을 생성하는 하위 쿼리와 결합됩니다. CASE
문은 열 이름을 기반으로 적절한 값을 동적으로 선택합니다. UNION ALL
메서드와 마찬가지로 결과는 각 행에 id
, 열 이름 및 관련 값이 포함된 평면화된 데이터세트입니다.
UNION ALL
및 CROSS JOIN
기술은 모두 MySQL에서 열 피벗 해제를 위한 강력한 솔루션을 제공하여 후속 처리 또는 시각화를 위해 열 형식 데이터를 행으로 변환할 수 있습니다.
위 내용은 UNION ALL 또는 CROSS JOIN을 사용하여 MySQL 열을 행으로 피벗 해제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!