PIVOT in SQL verstehen: Transformation von Zeilen in Spalten
Grace Collins
Solutions Engineer · Leapcell

Key Takeaways
- Der PIVOT-Operator in SQL dreht Zeilen in Spalten zur einfacheren Analyse.
- PIVOT-Syntax und -Verwendung unterscheiden sich zwischen Datenbanksystemen.
- PIVOT ist ideal für das effiziente Zusammenfassen und Melden von Daten.
Einführung
In SQL werden Daten oft in einem normalisierten, zeilenbasierten Format gespeichert, was sich hervorragend für die Transaktionsverarbeitung eignet, aber nicht immer ideal für Berichterstellung und Analyse ist. Hier wird der PIVOT
-Operator unschätzbar wertvoll. Die PIVOT
-Funktion in SQL ermöglicht es Benutzern, Zeilen in Spalten zu drehen, wodurch Daten leichter zu lesen und zu analysieren sind – insbesondere für Berichts- und Business-Intelligence-Aufgaben. In diesem Artikel werden wir untersuchen, was PIVOT
ist, wie man es verwendet, und praktische Beispiele geben.
Was ist PIVOT in SQL?
Der PIVOT
-Operator in SQL wird verwendet, um Daten von Zeilen in Spalten zu transformieren oder zu drehen. Dieser Vorgang wird auch als Kreuztabellierung bezeichnet. Er ist besonders nützlich, wenn Sie Daten zusammenfassen und in einem verständlicheren, matrixähnlichen Format anzeigen möchten.
Hauptvorteile der Verwendung von PIVOT:
- Vereinfacht die Datenanalyse und -berichterstellung
- Erleichtert die Datenvisualisierung
- Hilft beim Vergleichen von Daten über mehrere Kategorien hinweg
Grundlegende Syntax von PIVOT
Hier ist die grundlegende Syntax für die Verwendung des PIVOT
-Operators in SQL Server (beachten Sie, dass andere Datenbanken wie Oracle und PostgreSQL andere Ansätze verwenden):
SELECT <nicht-pivotierte Spalte>, [erste pivotierte Spalte] AS <Spaltenname>, [zweite pivotierte Spalte] AS <Spaltenname>, ... FROM ( SELECT <zu aggregierende Spalte>, <zu pivotierende Spalte>, <nicht-pivotierte Spalte> FROM <Tabellenname> ) AS SourceTable PIVOT ( <Aggregatfunktion>(<zu aggregierende Spalte>) FOR <zu pivotierende Spalte> IN ([erste pivotierte Spalte], [zweite pivotierte Spalte], ...) ) AS PivotTable;
Praktisches Beispiel
Angenommen, Sie haben eine Tabelle namens Sales
:
Jahr | Quartal | Umsatz |
---|---|---|
2023 | Q1 | 1000 |
2023 | Q2 | 1500 |
2023 | Q3 | 2000 |
2023 | Q4 | 1800 |
2024 | Q1 | 1200 |
2024 | Q2 | 1600 |
Wenn Sie die Daten so transformieren möchten, dass jedes Quartal zu einer Spalte und jedes Jahr zu einer Zeile wird, können Sie den PIVOT
-Operator verwenden:
SELECT Year, [Q1], [Q2], [Q3], [Q4] FROM ( SELECT Year, Quarter, Revenue FROM Sales ) AS SourceTable PIVOT ( SUM(Revenue) FOR Quarter IN ([Q1], [Q2], [Q3], [Q4]) ) AS PivotTable;
Ergebnis:
Jahr | Q1 | Q2 | Q3 | Q4 |
---|---|---|---|---|
2023 | 1000 | 1500 | 2000 | 1800 |
2024 | 1200 | 1600 | NULL | NULL |
PIVOT in anderen Datenbanken
Nicht alle SQL-Datenbanken haben einen integrierten PIVOT
-Operator. Zum Beispiel:
- Oracle unterstützt eine native
PIVOT
-Klausel. - PostgreSQL hat kein
PIVOT
-Schlüsselwort, kann aber ähnliche Ergebnisse mitcrosstab()
aus dertablefunc
-Erweiterung oder mitCASE
-Anweisungen erzielen. - MySQL unterstützt
PIVOT
nicht nativ, aber Sie könnenCASE
undSUM
(oder andere Aggregate) verwenden, um Daten manuell zu pivotieren.
Beispiel mit CASE (MySQL/PostgreSQL):
SELECT Year, SUM(CASE WHEN Quarter = 'Q1' THEN Revenue END) AS Q1, SUM(CASE WHEN Quarter = 'Q2' THEN Revenue END) AS Q2, SUM(CASE WHEN Quarter = 'Q3' THEN Revenue END) AS Q3, SUM(CASE WHEN Quarter = 'Q4' THEN Revenue END) AS Q4 FROM Sales GROUP BY Year;
Wann sollte PIVOT verwendet werden?
Verwenden Sie die PIVOT
-Funktion, wenn Sie Folgendes benötigen:
- Werte über mehrere Kategorien hinweg vergleichen
- Daten für Berichte oder Dashboards vorbereiten
- Datenanalyse vereinfachen, indem Sie Daten gruppieren und drehen
Fazit
Der PIVOT
-Operator ist ein leistungsstarkes Werkzeug in SQL, mit dem Sie Zeilen in Spalten transformieren können, um eine klarere und präzisere Datenanalyse zu erhalten. Während die Syntax in den verschiedenen SQL-Dialekten unterschiedlich sein kann, bleibt die Kernidee gleich. Das Verständnis, wie und wann PIVOT
verwendet werden sollte, kann Ihre Datenberichts- und Analysefähigkeiten erheblich verbessern.
FAQs
PIVOT transformiert zeilenbasierte Daten in spaltenbasiertes Format für bessere Lesbarkeit.
Nicht alle SQL-Datenbanken unterstützen das PIVOT-Schlüsselwort, aber ähnliche Ergebnisse können mit CASE-Anweisungen erzielt werden.
Verwenden Sie PIVOT, wenn Sie Daten über mehrere Kategorien hinweg vergleichen oder zusammenfassen müssen.
Wir sind Leapcell, Ihre erste Wahl für das Hosten von Backend-Projekten.
Leapcell ist die Serverless-Plattform der nächsten Generation für Webhosting, asynchrone Aufgaben und Redis:
Multi-Sprachen-Unterstützung
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt Projekte kostenlos bereit
- zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 $ unterstützt 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollautomatische CI/CD-Pipelines und GitOps-Integration.
- Echtzeit-Metriken und -Protokollierung für umsetzbare Erkenntnisse.
Mühelose Skalierbarkeit und hohe Leistung
- Automatische Skalierung zur einfachen Bewältigung hoher Parallelität.
- Kein operativer Aufwand – konzentrieren Sie sich einfach auf das Bauen.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ