- PIVOT 이란? 테이블의 데이터중 특정 데이터를 컬럼으로 사용하여 요약된 결과를 만들어 표시하는 것을 말합니다. ? |
- MSSQL SELECT 사용방법 ? SELECT [별칭] FROM [테이블명] PIVOT ( [집계함수]([집계할 컬럼명]) FOR [대상 컬럼명] IN ([PIVOT시 컬럼이 될 컬럼값]) ) AS [PIVOT 테이블 별칭] ? |
- 테이블 생성 CREATE TABLE dbo.성적 ( 반정보 varchar(3) NOT NULL, 과목 varchar(4) NOT NULL, 점수 int NOT NULL ) ? |
- 데이터 입력 INSERT INTO dbo.성적 (반정보, 과목, 점수) VALUES ('A반', '국어', 90) INSERT INTO dbo.성적 (반정보, 과목, 점수) VALUES ('A반', '수학', 85) INSERT INTO dbo.성적 (반정보, 과목, 점수) VALUES ('B반', '국어', 100) INSERT INTO dbo.성적 (반정보, 과목, 점수) VALUES ('B반', '수학', 90) |
- 테이블 입력 결과 확인? ? 반정보 | 과목 | 점수 | A반 | 국어 | 90 | A반 | 수학 | 85 | B반 | 국어 | 100 | B반 | 수학 | 90 |
- 예제 1 성적 테이블의 과목(국어, 수학)을 기준으로 점수중 가장 높은 점수를 표시하여 PIVOT 테이블을 생성하시오. |
? - 예제 1 쿼리 SELECT 반정보, 국어, 수학 FROM dbo.성적 PIVOT ( MAX(점수) FOR 과목 IN (국어, 수학) ) AS PVT |
? - 예제 2 아래의 데이터를 추가하고 성적 테이블의 반정보(A반, B반)을 기준으로 점수를 합산하여 PIVOT 테이블을 생성하시오. |
? - 데이터 입력 INSERT INTO dbo.성적 (반정보, 과목, 점수) VALUES ('A반', '국어', 75) INSERT INTO dbo.성적 (반정보, 과목, 점수) VALUES ('B반', '영어', 80) |
- 예제 2 쿼리 SELECT 과목, A반, B반 FROM dbo.성적 PIVOT ( SUM(점수) FOR 반정보 IN (A반, B반) ) AS PVT |
? 과목 | A반 | B반 | 국어 | 165 | 100 | 수학 | 85 | 90 | 영어 | NULL | 80 |
|
|