Verwenden von PIVOT zum Transformieren von Daten in SQL Server
Mit der SQL Server-PIVOT-Operation können Sie Daten von einem Breitformat in ein Hochformat umwandeln , wodurch es einfacher wird, Daten zusammenzufassen und zu analysieren. Dies ist besonders nützlich in Szenarien, in denen Sie in Zeilen und Spalten organisierte Daten in ein Format konvertieren möchten, in dem jede Spalte ein bestimmtes Attribut und jede Zeile einen bestimmten Wert für dieses Attribut darstellt.
Ein Beispielszenario ist die Transformation des folgenden Datensatzes, der Daten in einem breiten Format enthält:
Name1 | Name2 | Value -------|-------|------- A | P1 | 1 A | P2 | 1 A | P3 | 2 B | P1 | 3 B | P2 | 1 B | P4 | 1
In das folgende Format:
A B P1 1 4 P2 1 1 P3 2 NULL P4 NULL 1
Um diese Transformation in SQL Server zu erreichen 2005 kann der folgende Code verwendet werden:
DECLARE @cols VARCHAR(1000) DECLARE @sqlquery VARCHAR(2000) SELECT @cols = STUFF(( SELECT distinct ',' + QuoteName([Name1]) FROM myTable FOR XML PATH('') ), 1, 1, '') SET @sqlquery = 'SELECT * FROM (SELECT Name2, Name1, Value FROM myTable ) base PIVOT (Sum(Value) FOR [Name1] IN (' + @cols + ')) AS finalpivot' EXECUTE ( @sqlquery )
Dieser Code stellt dynamisch eine PIVOT-Abfrage basierend auf den eindeutigen Werten in der Spalte „Name1“ zusammen. Zunächst werden die unterschiedlichen Name1-Werte in einer durch Kommas getrennten Liste verkettet, die dann in der PIVOT-Anweisung zum Erstellen der neuen Spalten verwendet wird. Die Aggregatfunktion SUM() berechnet den Gesamtwert für jedes Attribut (Name1) innerhalb jeder Zeile (Name2).
Das Ergebnis ist ein transformierter Datensatz mit dem gewünschten Hochformat, wobei jede Spalte ein Name1-Attribut darstellt und jede Zeile enthält den entsprechenden Summenwert für dieses Attribut. Dieses Format erleichtert die Datenanalyse und -zusammenfassung, indem es eine prägnantere und organisiertere Ansicht der Daten bietet.
Das obige ist der detaillierte Inhalt vonWie kann die PIVOT-Funktion von SQL Server umfangreiche Daten in ein besser analysierbares Format umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!