> 데이터 베이스 > MySQL 튜토리얼 > 최적의 데이터 표시를 위해 SQL Server에서 여러 열을 피벗하는 방법은 무엇입니까?

최적의 데이터 표시를 위해 SQL Server에서 여러 열을 피벗하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-31 18:21:12
원래의
192명이 탐색했습니다.

How to Pivot Multiple Columns in SQL Server for Optimal Data Presentation?

최적의 데이터 표시를 위해 SQL Server에서 여러 열 피벗

관계형 데이터베이스로 작업할 때 테이블 피벗은 데이터 형태를 변경하는 효과적인 방법이 될 수 있습니다. 더 쉽게 분석하고 시각화할 수 있습니다. SQL Server에서 이 기술은 행으로 표시하려는 여러 열이 있는 테이블을 처리할 때 특히 유용할 수 있습니다.

문제 설명:

다음 샘플을 고려하세요. 테이블:

Branch  | Category | Sales | Stock  | Target
------- | ******** | ----- | ----- | -------
Branch1 | Panel    | 100   | 200   | 300
Branch1 | AC       | 150   | 250   | 350
Branch1 | Ref      | 200   | 300   | 400
로그인 후 복사

목표는 Category 열을 피벗하고 Sales, Stock 및 Target 열을 행으로 표시하여 다음을 생성하는 것입니다. 출력:

Branch  | Panel | AC   | Ref  |
------- | ------ | -- | ---- |
Branch1 | 100   | 150 | 200  |
로그인 후 복사

해결책:

원하는 출력을 얻으려면 SQL Server에서 일련의 피벗 문을 사용할 수 있습니다. 핵심은 후속 피벗 작업을 준비하기 위해 중간 피벗 결과에서 열 이름을 바꾸는 것입니다.

다음 코드를 고려하세요.

SELECT
*
FROM
(
  SELECT 
   Branch,
   Category,
   Category+'1' As Category1,
   Category+'2' As Category2,
   Sales, 
   Stock, 
   Target
  FROM TblPivot
 ) AS P

 -- For Sales
 PIVOT
 (
   SUM(Sales) FOR Category IN ([Panel], [AC], [Ref])
 ) AS pv1

 -- For Stock
 PIVOT
 (
   SUM(Stock) FOR Category1 IN ([Panel1], [AC1], [Ref1])
 ) AS pv2

 -- For Target
 PIVOT
 (
   SUM(Target) FOR Category2 IN ([Panel2], [AC2], [Ref2])
 ) AS pv3
 GO
로그인 후 복사

이 코드는 다음 단계를 실행합니다.

  1. 데이터 준비: Category 열의 이름을 바꾸고 두 개의 추가 열인 Category1을 추가합니다. 및 Category2를 사용하여 후속 피벗을 용이하게 합니다.
  2. 판매용 피벗: 첫 번째 피벗 문은 각 범주의 판매량을 합산하는 pv1 테이블을 생성합니다.
  3. 주식에 대한 피벗: 두 번째 피벗 문은 각각의 주식을 합산하는 pv2 테이블을 생성합니다. Category.
  4. 대상 피벗: 세 번째 피벗 문은 각 범주에 대한 대상을 합산하는 pv3 테이블을 생성합니다.

결과 pv3 테이블에는 다음이 포함됩니다. 범주는 행으로, 열은 판매, 재고, 목표 값을 나타내는 원하는 출력입니다.

위 내용은 최적의 데이터 표시를 위해 SQL Server에서 여러 열을 피벗하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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