Pivotieren von Zeilen zu Spalten
Teil des Abschnitts Über die Grundlagen hinaus der SQL-Journey von Coddy — Lektion 14 von 27.
Kombinieren Sie bedingte Aggregation mit GROUP BY, um Zeilen in Spalten umzuwandeln. Es ist die SQL-Version eines Tabellenkalkulations-Pivots.
Angenommen, sales hat Zeilen wie (month, product, units). Um eine Zeile pro Monat mit einer Spalte pro Produkt zu sehen:
SELECT
month,
SUM(CASE WHEN product = 'A' THEN units ELSE 0 END) AS product_a,
SUM(CASE WHEN product = 'B' THEN units ELSE 0 END) AS product_b
FROM sales
GROUP BY monthDer GROUP BY-Bucket, den jedes SUM(CASE …) sieht, sind die Zeilen für einen Monat; das CASE wählt den Ausschnitt für ein Produkt aus.
Aufgabe
EinfachVerfügbare Tabellen und Spalten:
<strong>sales</strong>:<strong>month</strong>,<strong>product</strong>,<strong>units</strong>
Pivotieren Sie die Daten so, dass jede Zeile ein month mit diesen Spalten ist:
monthapples: Gesamteunitsfür das Produkt'apples'in diesem Monatbananas: dasselbe für'bananas'cherries: dasselbe für'cherries'total: Gesamteunitsüber alle Produkte in diesem Monat
Geben Sie nur Monate zurück, deren total mindestens 20 beträgt. Sortieren Sie nach month.
Spickzettel
Verwenden Sie bedingte Aggregation mit GROUP BY, um Zeilen in Spalten zu transformieren (Pivotierung):
SELECT
month,
SUM(CASE WHEN product = 'A' THEN units ELSE 0 END) AS product_a,
SUM(CASE WHEN product = 'B' THEN units ELSE 0 END) AS product_b,
SUM(units) AS total
FROM sales
GROUP BY month
HAVING SUM(units) >= threshold
ORDER BY monthJedes SUM(CASE …) summiert nur die Zeilen, die diesem Produkt entsprechen, innerhalb jedes GROUP BY-Buckets.
Probier es selbst
SELECT month,
-- ein SUM(CASE ...) pro Produkt, plus total
FROM sales
GROUP BY month
-- filtern nach Monaten mit total >= 20
ORDER BY month
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Über die Grundlagen hinaus
3Bedingte Aggregation
COUNT mit CASESUM mit CASEPivotieren von Zeilen zu SpaltenZusammenfassung – Traffic-Quellen