Pivotieren mehrerer Spalten in SQL Server für eine optimale Datendarstellung
Bei der Arbeit mit relationalen Datenbanken können Pivottabellen eine effektive Möglichkeit sein, Daten umzuformen zur einfacheren Analyse und Visualisierung. In SQL Server kann diese Technik besonders nützlich sein, wenn Sie mit Tabellen arbeiten, die mehrere Spalten haben, die Sie als Zeilen anzeigen möchten.
Problemstellung:
Betrachten Sie das folgende Beispiel Tabelle:
Branch | Category | Sales | Stock | Target ------- | ******** | ----- | ----- | ------- Branch1 | Panel | 100 | 200 | 300 Branch1 | AC | 150 | 250 | 350 Branch1 | Ref | 200 | 300 | 400
Das Ziel besteht darin, die Spalte „Kategorie“ zu drehen und die Spalten „Verkäufe“, „Bestand“ und „Ziel“ als Zeilen anzuzeigen, was Folgendes ergibt Ausgabe:
Branch | Panel | AC | Ref | ------- | ------ | -- | ---- | Branch1 | 100 | 150 | 200 |
Lösung:
Um die gewünschte Ausgabe zu erzielen, können wir eine Reihe von Pivot-Anweisungen in SQL Server verwenden. Der Schlüssel besteht darin, die Spalten in den Pivot-Zwischenergebnissen umzubenennen, um sie auf den nachfolgenden Pivot-Vorgang vorzubereiten.
Beachten Sie den folgenden Code:
SELECT * FROM ( SELECT Branch, Category, Category+'1' As Category1, Category+'2' As Category2, Sales, Stock, Target FROM TblPivot ) AS P -- For Sales PIVOT ( SUM(Sales) FOR Category IN ([Panel], [AC], [Ref]) ) AS pv1 -- For Stock PIVOT ( SUM(Stock) FOR Category1 IN ([Panel1], [AC1], [Ref1]) ) AS pv2 -- For Target PIVOT ( SUM(Target) FOR Category2 IN ([Panel2], [AC2], [Ref2]) ) AS pv3 GO
Dieser Code führt die folgenden Schritte aus:
Die resultierende pv3-Tabelle enthält die gewünschte Ausgabe, wobei die Kategorien als Zeilen und die Spalten die Verkaufs-, Lager- und Zielwerte darstellen.
Das obige ist der detaillierte Inhalt vonWie kann man in SQL Server mehrere Spalten für eine optimale Datenpräsentation schwenken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!