LoslegenKostenlos loslegen

Zeilen in Spalten verwandeln

In dieser Lektion hast du gelernt, dass PIVOT die eindeutigen Werte aus einer Spalte in mehrere Spalten umwandelt.

Beim Analysieren der Daten in paper_shop_monthly_sales stellst du fest, dass die Struktur dieser Tabelle nicht zu dem Bericht passt, den du erstellen möchtest.

Du möchtest einen Bericht mit folgendem Aussehen erzeugen:

|year_of_sale|notebooks|pencils|crayons|
|------------|---------|-------|-------|
| 2018       | 150     | 150   | 80    |
| 2019       | 230     | 130   | 170   |

Mit anderen Worten: Du möchtest die Daten aus den Zeilen in Spalten umwandeln und die Einheiten für jedes Jahr summieren.

Wie du aus den vorherigen Übungen weißt, müssen der Produktname und die Einheiten getrennt werden. Das geschieht im Subselect – sieh ihn dir an.

Diese Übung ist Teil des Kurses

Datenbereinigung in SQL Server-Datenbanken

Kurs anzeigen

Anleitung zur Übung

  • Wähle die gepivotteten Spalten für jedes Produkt aus.
  • Nimm die Summe der Einheiten innerhalb des PIVOT-Operators vor.
  • Gib nach der FOR-Klausel den Namen der Spalte an, deren Werte zu Spaltenüberschriften werden.
  • Gib dem PIVOT-Operator den Namen paper_shop_pivot.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

SELECT
	year_of_sale,
    -- Select the pivoted columns
	___, 
	___, 
	___
FROM
   (SELECT 
		SUBSTRING(product_name_units, 1, charindex('-', product_name_units)-1) product_name, 
		CAST(SUBSTRING(product_name_units, charindex('-', product_name_units)+1, len(product_name_units)) AS INT) units,	
		year_of_sale
	FROM paper_shop_monthly_sales) sales
-- Sum the units for column that contains the values that will be column headers
PIVOT (SUM(___) FOR ___ IN (notebooks, pencils, crayons))
-- Give the alias name
AS ___
Code bearbeiten und ausführen