Menu
Coddy logo textTech

SUM mit CASE

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

Dieselbe Idee funktioniert mit SUM: und sie ist sogar noch flexibler. Das CASE kann für übereinstimmende Zeilen 1 und für alles andere 0 zurückgeben oder einen beliebigen numerischen Wert zurückgeben, um Zeilen unterschiedlich zu gewichten.

SELECT
    SUM(CASE WHEN status = 'active' THEN 1 ELSE 0 END) AS active_count,
    SUM(CASE WHEN plan = 'pro' THEN amount ELSE 0 END) AS pro_revenue
FROM users

SUM(CASE … THEN 1 ELSE 0 END) und COUNT(CASE … THEN 1 END) liefern beim Zählen dasselbe Ergebnis; wähle den Stil, den dein Team bevorzugt.

challenge icon

Aufgabe

Einfach

Verfügbare Tabellen und Spalten:

  • transactions: id, category, type, amount

type ist entweder 'sale' oder 'refund'. Gib für jede category Folgendes zurück:

  • category
  • net_revenue: Summe der Verkaufsbeträge minus Summe der Erstattungsbeträge

Berechne net_revenue in einem einzigen SUM(CASE …)-Ausdruck, wobei Erstattungen mit ihrem Betrag als negative Zahl einfließen. Sortiere nach net_revenue absteigend.

Probier es selbst

SELECT category,
       -- ein SUM(CASE ...), bei dem Rückerstattungen negativ zählen
FROM transactions
GROUP BY category
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