Heim > Datenbank > MySQL-Tutorial > Wie kann die PIVOT-Funktion von SQL Server umfangreiche Daten in ein besser analysierbares Format umwandeln?

Wie kann die PIVOT-Funktion von SQL Server umfangreiche Daten in ein besser analysierbares Format umwandeln?

Susan Sarandon
Freigeben: 2024-12-17 11:17:25
Original
244 Leute haben es durchsucht

How Can SQL Server's PIVOT Function Transform Wide Data to a More Analyzable Format?

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
Nach dem Login kopieren

In das folgende Format:

       A     B
P1     1     4
P2     1     1
P3     2     NULL
P4     NULL  1
Nach dem Login kopieren

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 )
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage