집 >데이터 베이스 >MySQL 튜토리얼 >재무 비율 데이터를 변환하기 위해 T-SQL에서 여러 열을 피벗하는 방법은 무엇입니까?
TSQL에서 여러 열 피벗
관계형 데이터베이스로 작업할 때 분석이나 작업을 더 쉽게 만들기 위해 데이터를 변환해야 하는 경우가 많습니다. 보고하다. 이를 수행하는 한 가지 방법은 행을 열로 또는 그 반대로 회전하는 방식으로 데이터를 피벗하는 것입니다.
재정 비율, 결과, 점수 및 성적이 포함된 다음 표를 고려하세요.
RATIO | RESULT | SCORE | GRADE |
---|---|---|---|
Current Ratio | 1.294 | 60 | Good |
Gearing Ratio | 0.3384 | 70 | Good |
Performance Ratio | 0.0427 | 50 | Satisfactory |
TOTAL | NULL | 180 | Good |
이 데이터를 피벗하고 모든 레이블을 유지하려면 각 행이 각 열에 하나의 값을 갖도록 결과, 점수 및 성적 열의 피벗을 해제해야 합니다. 이는 사용 중인 SQL Server 버전에 따라 UNPIVOT 함수 또는 CROSS APPLY를 사용하여 달성할 수 있습니다.
데이터 피벗이 해제되면 PIVOT 함수를 적용하여 행을 열로 회전할 수 있습니다. 구문은 다음과 유사합니다.
SELECT ratio = col, [current ratio], [gearing ratio], [performance ratio], total FROM ( SELECT ratio, col, value FROM GRAND_TOTALS CROSS APPLY ( SELECT 'result', CAST(result AS VARCHAR(10)) UNION ALL SELECT 'score', CAST(score AS VARCHAR(10)) UNION ALL SELECT 'grade', grade ) c(col, value) ) d PIVOT ( MAX(value) FOR ratio IN ([current ratio], [gearing ratio], [performance ratio], total) ) piv;
결과 출력은 각 비율에 대해 하나의 행과 현재 비율, 기어링 비율, 성과 비율, 합계, 점수 및 열에 대한 열이 있는 테이블이 됩니다. 학년:
RATIO | CURRENT RATIO | GEARING RATIO | PERFORMANCE RATIO | TOTAL | SCORE | GRADE |
---|---|---|---|---|---|---|
grade | Good | Good | Satisfactory | Good | NULL | NULL |
result | 1.29400 | 0.33840 | 0.04270 | NULL | NULL | NULL |
score | 60.00000 | 70.00000 | 50.00000 | 180.00000 | NULL | NULL |
위 내용은 재무 비율 데이터를 변환하기 위해 T-SQL에서 여러 열을 피벗하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!