Menu
Coddy logo textTech

Prozentualer Anteil am Gesamtwert

Teil des Abschnitts Über die Grundlagen hinaus der SQL-Journey von Coddy. Lektion 24 von 27.

Der Anteil jeder Zeile am Ganzen ist ein Klassiker der Fensterfunktionen: Teilen Sie den Wert der Zeile durch die SUM derselben Spalte über das gesamte Fenster.

SELECT product, revenue,
       revenue * 100.0 / SUM(revenue) OVER () AS pct
FROM sales

Ein leeres OVER () bedeutet „die gesamte Ergebnismenge“. Fügen Sie stattdessen ein PARTITION BY hinzu, um den Anteil innerhalb einer Gruppe zu berechnen (z. B. OVER (PARTITION BY category) für den Anteil innerhalb jeder Kategorie).

Multiplizieren Sie mit 100.0 (nicht 100), damit die Division ein Float bleibt. Andernfalls würde die Ganzzahldivision von SQLite kleine Anteile auf Null abrunden.

challenge icon

Aufgabe

Einfach

Verfügbare Tabellen und Spalten:

  • <strong>sales</strong>: <strong>category</strong>, <strong>product</strong>, <strong>revenue</strong>

Geben Sie für jede Zeile Folgendes zurück:

  • category
  • product
  • revenue
  • pct_of_category: der Anteil des Produkts am Umsatz innerhalb seiner Kategorie, gerundet auf 1 Dezimalstelle

Verwenden Sie ein PARTITION BY im Window. Sortieren Sie nach category, dann nach pct_of_category absteigend.

Probier es selbst

SELECT category, product, revenue,
       -- pct als Anteil innerhalb der Kategorie, PARTITION BY verwenden
FROM sales
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

Übe selbstständig: SQL-Playground