SUM()
Aggregatfunktionen
SUM() addiert die Werte einer numerischen Spalte und gibt die Gesamtsumme zurück. Damit beantwortest du Fragen wie „Wie hoch ist der Gesamtumsatz?“ oder „Wie viele Stück wurden insgesamt bestellt?“.
Syntax
SELECT SUM(Spalte) FROM Tabelle;
Beispiel: Gesamtumsatz
SELECT SUM(Umsatz) AS Gesamtumsatz FROM Kunden;
| Gesamtumsatz |
|---|
| 245700 |
Beispiel: Summe eines Ausdrucks
SUM() kann auch eine Berechnung summieren – hier der Gesamtwert aller Bestellpositionen (Menge × Preis), wozu ein Join nötig ist:
SELECT SUM(b.Menge * p.Preis) AS Warenwert FROM Bestellungen AS b JOIN Produkte AS p ON b.ProduktID = p.ProduktID;
| Warenwert |
|---|
| 18650 |
Beispiel: Summe pro Gruppe
Mit GROUP BY erhältst du eine Summe je Gruppe – etwa die bestellte Menge pro Kunde:
SELECT KundenID, SUM(Menge) AS GesamtMenge FROM Bestellungen GROUP BY KundenID;
Nur bestimmte Zeilen summieren
Mit WHERE grenzt du vorher ein, welche Zeilen in die Summe einfließen:
SELECT SUM(Umsatz) AS UmsatzBerlin FROM Kunden WHERE Stadt = 'Berlin';
Stolperfalle
SUM() ignoriert NULL-Werte – sie zählen nicht als 0, sondern werden übersprungen. Das ist meist gewünscht. Gibt es gar keine Zeilen, liefert SUM() jedoch NULL und nicht 0. Willst du in dem Fall eine 0 sehen, kombiniere mit COALESCE: COALESCE(SUM(Umsatz), 0). Achte außerdem auf SUM über sehr großen Spalten – das Ergebnis kann den Wertebereich des Datentyps sprengen.