SQL Server 테이블 회전
이 문서에서는 SQL Server 테이블을 회전하는 방법을 설명합니다.
원래 제품 버전: SQL Server
원본 KB 번호: 175574
요약
이 문서에서는 SQL Server 테이블을 회전하는 방법을 설명합니다. 라는 QTRSALES
테이블이 있다고 가정해 보겠습니다. 테이블에는 다음 형식의 데이터가 있는 , QUARTER
및 AMOUNT
열YEAR
이 있습니다.
참고
1996년 4분기의 행은 없습니다.
년도 | 분기 | 금액 |
---|---|---|
1995 | 1 | 125,000.90 |
1995 | 2 | 136,000.75 |
1995 | 3 | 212,000.34 |
1995 | 4 | 328,000.82 |
1996 | 3 | 728,000.35 |
1996 | 2 | 422,000.13 |
1996 | 1 | 328,000.82 |
이제 다음 형식으로 데이터를 볼 수 있도록 테이블을 회전하려고 합니다.
년 | Q1 | 2분기 | 3분기 | 4분기 |
---|---|---|---|---|
1995 | 125,000.90 | 136,000.75 | 212,000.34 | 328,000.82 |
1996 | 328,000.82 | 422,000.13 | 728,000.35 | 0.00 |
테이블을 회전하는 데 사용할 쿼리는 이 문서의 다음 섹션에 있습니다.
테이블을 회전하는 샘플 쿼리
테이블을 회전하는 데 사용할 쿼리는 다음과 같습니다.
SELECT YEAR,
Q1= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 1 AND YEAR =
Q.YEAR),0),
Q2= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 2 AND YEAR =
Q.YEAR),0),
Q3= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 3 AND YEAR =
Q.YEAR),0),
Q4= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 4 AND YEAR =
Q.YEAR),0)
FROM QTRSALES Q
GROUP BY YEAR
큰 테이블 쿼리
큰 테이블의 경우 이 쿼리는 더 빠릅니다.
SELECT YEAR,
SUM(CASE quarter WHEN 1 THEN amount ELSE 0 END) AS Q1,
SUM(CASE quarter WHEN 2 THEN amount ELSE 0 END) AS Q2,
SUM(CASE quarter WHEN 3 THEN amount ELSE 0 END) AS Q3,
SUM(CASE quarter WHEN 4 THEN amount ELSE 0 END) AS Q4
FROM qtrsales q
GROUP BY YEAR
참조
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기