Menu
Coddy logo textTech

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 month

Der 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.

challenge icon

Aufgabe

Einfach

Verfü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:

  • month
  • apples: Gesamte units für das Produkt 'apples' in diesem Monat
  • bananas: dasselbe für 'bananas'
  • cherries: dasselbe für 'cherries'
  • total: Gesamte units ü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 month

Jedes 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
quiz iconTeste dich selbst

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