使用SQL 連線列與透視資料
問題:
問題:問題:
您有一個資料庫表示ID、類型、子類型、計數和月份的欄位。如何將此資料轉換為新格式,其中類型和子類型連接到新列中,並對 ID 和月份的每個唯一組合的計數進行求和?
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 Server 2005 中的 PIVOT 運算子。 PIVOT 運算子可讓您將行動態轉置為以上是如何使用 SQL 連線列、資料透視資料以及唯一 ID 和月份組合的總和計數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!