SQL Pivot - Wissen, wie Zeilen in Spalten konvertiert werden



Dieser Artikel zu SQL Pivot ist eine umfassende Anleitung zum Konvertieren der Daten auf Zeilenebene in Spaltendaten mit ausführlichen Beispielen.

Relational Speichern Sie riesige Datenmengen in Form von Tabellen. Diese Tabellen können beliebig viele Zeilen und Spalten enthalten. Was wäre, wenn Sie die Daten auf Zeilenebene in Spaltendaten ändern müssten? In diesem Artikel zu SQL Pivot werde ich Ihnen zeigen, wie Sie Zeilen in eine Spalte in einem SQL Server konvertieren können.

gehe sortiere c ++

Die folgenden Themen werden in diesem Artikel behandelt:





Was ist PIVOT in SQL?

Mit PIVOT wird der Tabellenwert gedreht, indem die eindeutigen Werte einer einzelnen Spalte in mehrere Spalten konvertiert werden. Es wird verwendet, um die Zeilen auf Spaltenwerte zu drehen und bei Bedarf Aggregationen für die verbleibenden Spaltenwerte auszuführen.

UNPIVOT wird dagegen verwendet, um die entgegengesetzten Operationen auszuführen. Daher werden die Spalten einer bestimmten Tabelle in Spaltenwerte konvertiert.



Lassen Sie uns in diesem Artikel die Syntax von SQL Pivot verstehen.

Syntax:

SELECT NonPivoted ColumnName, [First Pivoted ColumnName] AS ColumnName, [Second Pivoted ColumnName] AS ColumnName, [Third Pivoted ColumnName] AS ColumnName, ... [Last Pivoted ColumnName] AS ColumnName FROM (SELECT-Abfrage, die die Daten erzeugt) AS [Alias für die erste Abfrage] PIVOT ([AggregationFunction] (ColumName) FOR [ColumnName der Spalte, deren Werte zu Spaltenüberschriften werden] IN ([First Pivoted ColumnName], [Second Pivoted ColumnName], [Third Pivoted ColumnName] ... [last Pivot-Spalte])) AS [Alias ​​für die Pivot-Tabelle]

Hier,Sie können auch die verwenden ORDER BY-Klausel um die Werte entweder in aufsteigender oder absteigender Reihenfolge zu sortieren. Nachdem Sie nun wissen, was PIVOT in SQL und seine grundlegende Syntax ist, lassen Sie uns fortfahren und sehen, wie es verwendet wird.

Beispiele

Zum besseren Verständnis werde ich die folgende Tabelle betrachten, um Ihnen alle Beispiele zu erläutern.



Lieferantentabelle:

Lieferanten ID Herstellungstage Kosten Kundennummer PurchaseID
ein121230elfP1
2einundzwanzig154322P2
3322. 3. 4. 5elfP3
414876522P1
542345233P3
631543133P1
7412342elfP2
854365422P2
9331234elfP3
1056683233P2

Lassen Sie uns eine einfache Abfrage schreiben, um die durchschnittlichen Kosten jedes Kunden abzurufen.

SELECT CustomerID, AVG (Cost) AS AverageCostofCustomer FROM Suppliers GROUP BY CustomerID

Ausgabe:

Kundennummer AverageCostofCustomer
elf1787,75
224654
335238,33

Nehmen wir nun an, wir möchten die obige Tabelle drehen. Hier werden die CustomerID-Spaltenwerte zu den Spaltenüberschriften.

- Erstellen Sie eine Pivot-Tabelle mit einer Zeile und drei Spalten. SELECT 'AverageCostofCustomer' AS Cost_According_To_Customers, [11], [22], [33] FROM (SELECT CustomerID, Cost FROM Suppliers) AS SourceTable PIVOT (AVG (Kosten) FOR CustomerID IN ( [11], [22], [33])) AS PivotTable

Ausgabe:

Cost_According_To_Customers elf2233
AverageCostofCustomer 1787,7546545238,33

Hinweis: Wenn Sie verwenden Aggregatfunktionen Bei PIVOT werden Nullwerte bei der Berechnung einer Aggregation nicht berücksichtigt.

Nun, das war ein grundlegendes Beispiel, aber lassen Sie uns jetzt verstehen, wie die PIVOT-Klausel funktioniert hat.

Arbeitsweise der PIVOT-Klausel

Wie Sie oben verweisen können, müssen Sie zum Erstellen einer PIVOT-TABELLE die folgenden Schritte ausführen:

  • Wählen Sie Spalten zum Schwenken aus
  • Wählen Sie dann eine Quellentabelle aus.
  • Wenden Sie den PIVOT-Operator an und verwenden Sie dann die Aggregatfunktionen.
  • Erwähnen Sie die Pivot-Werte.

Wählen Sie Spalten zum Schwenken aus

Zunächst müssen wir die Felder angeben, die in unsere Ergebnisse aufgenommen werden sollen. In unserem Beispiel habe ich die Spalte AverageCostofCustomer in der Pivot-Tabelle berücksichtigt. Dann haben wir drei weitere Spalten mit den Spaltenüberschriften 11, 22 und 33 erstellt.

SELECT 'AverageCostofCustomer' AS Cost_According_To_Customers, [11], [22], [33]

Quelltabelle auswählen

Als Nächstes müssen Sie die SELECT-Anweisung angeben, die die Quelldaten für die Pivot-Tabelle zurückgibt. In unserem Beispiel geben wir die Kunden-ID und die Kosten aus der Lieferantentabelle zurück.

(SELECT CustomerID, Cost FROM Suppliers) AS SourceTable

Wenden Sie den PIVOT-Operator an und verwenden Sie dann die Aggregatfunktionen

Als Nächstes müssen Sie die Aggregatfunktion angeben, die beim Erstellen der Pivot-Tabelle verwendet werden soll. In unserem Beispiel habe ich die AVG-Funktion verwendet, um die durchschnittlichen Kosten zu berechnen.

PIVOT (AVG (Kosten)

Erwähnen Sie die Pivot-Werte

Abschließend müssen Sie die Werte angeben, die in der resultierenden Pivot-Tabelle enthalten sein müssen. Diese Werte werden als Spaltenüberschriften in der Pivot-Tabelle verwendet.

FOR CustomerID IN ([11], [22], [33])) AS PivotTable

So arbeiten die PIVOT-Operatoren. Lassen Sie uns in diesem Artikel über SQL PIVOT verstehen, wie unterschiedlich es von SQL UNPIVOT ist.

SQL UNPIVOT

Der SQL UNPIVOT-Operator wird verwendet, um die entgegengesetzte Operation zu der von PIVOT auszuführen. Es wird verwendet, um die Spaltendaten in Daten auf Zeilenebene zu drehen. Die Syntax von UNPIVOT ähnelt der von PIVOT. Der einzige Unterschied ist, dass Sie die verwenden müssen '' UNPIVOT ” .

Beispiel:

Erstellen wir eine Tabelle mit den Spalten SupplierID, AAA, BBB und CCC. Fügen Sie außerdem einige Werte ein.

CREATE TABLE Sampletable (SupplierID int, AAA int, BBB int, CCC int) GO INSERT IN Sampletable VALUES (1,3,5,6) INSERT IN Sampletable VALUES (2,9,2,8) INSERT IN Sampletable VALUES (3, 8,1,7) GO

Ausgabe:

Lieferanten ID AAA BBB CCC
ein356
2928
38ein7

Nehmen wir jetzt an, wir möchten die Tabelle aufheben. Dazu können Sie auf den folgenden Code verweisen:

SELECT SupplierID, Kunden, Produkte FROM (SELECT SupplierD, AAA, BBB, CCC FROM Sampletable) p UNPIVOT (Produkte FÜR Kunden IN (AAA, BBB, CCC)) ALS Beispiel GO
Lieferanten ID Kunden Produkte

ein

AAA

3

ein

BBB

5

ein

CCC

6

2

AAA

9

2

BBB

2

2

CCC

8

3

AAA

8

3

BBB

ein

3

CCC

7

So können Sie SQL PIVOT und UNPIVOT verwenden. Damit sind wir diesem Artikel ein Ende gesetzt. Ich hoffe, Sie haben verstanden, wie man SQL benutzt. Wenn Sie mehr darüber erfahren möchten MySQL Lernen Sie diese relationale Open-Source-Datenbank kennen und sehen Sie sich unsere an Dies beinhaltet ein von Lehrern geführtes Live-Training und praktische Projekterfahrung. Diese Schulung hilft Ihnen dabei, MySQL gründlich zu verstehen und das Thema zu beherrschen.

Hast du eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich dieses Artikels zu SQL Pivot, und ich werde mich bei Ihnen melden.