SQL을 사용하여 열 연결 및 데이터 피벗
문제:
다음과 같은 데이터베이스가 있습니다. ID, 유형, 하위 유형, 개수 및 월을 나타내는 열입니다. 유형과 하위 유형이 새 열로 연결되고 ID와 월의 각 고유 조합에 대해 개수가 합산되는 새로운 형식으로 이 데이터를 어떻게 변환할 수 있습니까?
해결책:
이렇게 변환된 출력을 얻으려면 SQL Server 2005에서 PIVOT 연산자를 활용할 수 있습니다. PIVOT 연산자를 사용하면 행을 동적으로 변환할 수 있습니다. 열.
다음 코드 조각은 PIVOT을 사용하여 원하는 결과를 얻는 방법을 보여줍니다.
DECLARE @sql AS varchar(max) DECLARE @pivot_list AS varchar(max) -- Leave NULL for COALESCE technique DECLARE @select_list AS varchar(max) -- Leave NULL for COALESCE technique SELECT @pivot_list = COALESCE(@pivot_list + ', ', '') + '[' + PIVOT_CODE + ']' ,@select_list = COALESCE(@select_list + ', ', '') + 'ISNULL([' + PIVOT_CODE + '], 0) AS [' + PIVOT_CODE + ']' FROM ( SELECT DISTINCT [TYPE] + '_' + SUBTYPE AS PIVOT_CODE FROM stackoverflow_159456 ) AS PIVOT_CODES 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 ' EXEC (@sql)
구현 세부 정보:
@sql 변수를 실행하면 다음이 반환됩니다. 연결된 열과 합산된 개수가 있는 원하는 테이블. 이 솔루션을 사용하면 복잡한 데이터를 효율적이고 동적으로 집계할 수 있습니다.
위 내용은 SQL을 사용하여 고유 ID와 월 조합에 대한 열, 피벗 데이터 및 합계 수를 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!