> 데이터 베이스 > MySQL 튜토리얼 > 행 데이터를 열로 변환하기 위해 CASE WHEN을 사용하여 SQL 열을 피벗하는 방법은 무엇입니까?

행 데이터를 열로 변환하기 위해 CASE WHEN을 사용하여 SQL 열을 피벗하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-11 16:02:46
원래의
842명이 탐색했습니다.

How to Pivot a SQL Column Using CASE WHEN to Transform Row Data into Columns?

SQL 열 피벗에 CASE WHEN 사용

SQL 데이터를 행에서 열로 변환해야 합니까? CASE WHEN 문은 특히 집계가 필요한 열에 중복 값이 ​​포함된 테이블을 처리할 때 피벗을 위한 간단한 솔루션을 제공합니다.

예를 들어 설명해 보겠습니다. 다음 테이블을 상상해보세요:

<code class="language-sql">Bank:
name  val   amount
John   1     2000
Peter  1     1999
Peter  2     1854
John   2     1888</code>
로그인 후 복사

우리의 목표: 고유한 "val" 값이 열이 되고 각 고유한 "이름"이 행이 되는 테이블로 이를 재구성하는 것입니다. 원하는 출력:

<code class="language-sql">name  amountVal1 amountVal2  
John    2000        1888   
Peter   1999        1854    </code>
로그인 후 복사

SUM()CASE WHEN을 사용하여 이 피벗을 달성하는 방법은 다음과 같습니다.

<code class="language-sql">SELECT 
  name,
  SUM(CASE WHEN val = 1 THEN amount ELSE 0 END) AS amountVal1,
  SUM(CASE WHEN val = 2 THEN amount ELSE 0 END) AS amountVal2
FROM bank
GROUP BY name;</code>
로그인 후 복사

이 쿼리는 SUM()을 사용하여 각 고유 amountname 조합에 대한 val 값을 집계합니다. CASE WHEN 문은 val이 1인지 2인지 확인하고 그에 따라 해당 amount을 할당합니다. GROUP BY name은 고유한 이름당 하나의 행을 보장합니다. 결과는? amountVal1amountVal2 열은 피벗된 데이터를 깔끔하게 표현합니다. 이 방법은 알려진 제한된 수의 val 값에 효과적입니다. 동적인 값의 경우 PIVOT 또는 기타 고급 기술을 사용하는 것이 좋습니다.

위 내용은 행 데이터를 열로 변환하기 위해 CASE WHEN을 사용하여 SQL 열을 피벗하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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