피벗 테이블과 열 연결
질문:
데이터베이스 테이블을 어떻게 변환할 수 있나요? 다음과 함께 구조:
ID TYPE SUBTYPE COUNT MONTH 1 A Z 1 7/1/2008 1 A Z 3 7/1/2008 2 B C 2 7/2/2008 1 A Z 3 7/2/2008
다음 구조의 테이블로 변환:
ID A_Z B_C MONTH 1 4 0 7/1/2008 2 0 2 7/2/2008 1 0 3 7/2/2008
여기서 TYPE과 SUBTYPE은 연결되어 새 열(예: "A_Z")을 형성하고 COUNT가 합산됩니다. ID와 MONTH가 일치하는 경우 값?
답변:
SQL Server 2005는 질문에 설명된 변환을 가능하게 하는 PIVOT 연산자를 제공합니다. 자세한 설명은 다음과 같습니다.
DECLARE @sql AS varchar(max); SET @sql = ' ;WITH p AS ( SELECT ID, [MONTH], [TYPE] + ''_'' + SUBTYPE AS PIVOT_CODE, SUM(COUNT) AS [COUNT] FROM stackoverflow_159456 GROUP BY ID, [MONTH], [TYPE] + ''_'' + SUBTYPE ) SELECT ID, [MONTH], ' + @select_list + ' FROM p PIVOT ( SUM(COUNT) FOR PIVOT_CODE IN ( ' + @pivot_list + ' ) ) AS pvt ';
이 솔루션은 동적 SQL을 활용하여 TYPE 및 SUBTYPE 값의 고유한 조합을 기반으로 PIVOT 쿼리를 구성하므로 데이터베이스의 여러 유형 및 하위 유형을 처리하기 위한 유지 관리가 필요 없는 접근 방식을 제공합니다.
위 내용은 SQL Server에서 테이블을 피벗하고 열을 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!