집 >데이터 베이스 >MySQL 튜토리얼 >SQL에서 데이터 피벗을 해제하고 열 이름을 새 열로 포함하는 방법은 무엇입니까?
SQL에서 넓은 데이터를 긴 형식으로 변환
StudentMarks
, Name
, Maths
및 Science
열이 있는 English
이라는 테이블이 있다고 가정해 보겠습니다. 목표는 이 넓은 형식의 데이터를 제목 이름이 새 열이 되는 긴 형식으로 변환하는 것입니다. 대상 출력은 다음과 유사해야 합니다.
<code>Name Subject Marks Tilak Maths 90 Tilak Science 40 Tilak English 60</code>
UNPIVOT
연산자를 사용하는 일반적인 접근 방식은 처음에는 열 이름을 새 열로 포함하는 데 어려워 보일 수 있습니다. 그러나 해결책은 간단합니다.
<code class="language-sql">SELECT u.name, u.subject, u.marks FROM StudentMarks AS s UNPIVOT ( marks FOR subject IN (Maths, Science, English) ) AS u;</code>
이 SQL 쿼리는 UNPIVOT
을 사용하여 StudentMarks
테이블(별칭 's')을 재구성합니다. FOR
내의 UNPIVOT
절은 피벗 해제할 열(Maths
, Science
, English
)을 지정하며, 이러한 열 이름은 결과 데이터세트의 새 Subject
열을 자동으로 채웁니다. marks
값은 피벗되지 않은 테이블의 marks
열에 할당됩니다. 이 수정된 쿼리는 원하는 이름, 제목, 표시 열을 긴 형식으로 효율적으로 생성합니다.
위 내용은 SQL에서 데이터 피벗을 해제하고 열 이름을 새 열로 포함하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!