Die SQL SUM() Funktion gibt die Summe einer Spalte wieder.
SELECT SUM(Spalte)
FROM Tabelle;
NULL-Werte werden bei der Berechnung der Summe ignoriert. Innerhalb der Klammern wird die zu summierende Spalte eingesetzt.
SQL SUM( ) - Beispiel
Ein Unternehmen möchte die Gehälter ihrer Mitarbeiter für das Jahr 2019 abfragen:
SELECT SUM(Gehalt) AS Gehalt_2019
FROM Personal
WHERE Datum BETWEEN '2019-01-01' AND '2019-12-31';
Das SELECT Statement gibt Summe der Einnahmen als Spalte mit dem Namen „SummeEinnahmen“ wieder. Die Tabelle Verkäufe wird dafür genutzt. Als Bedingung muss das Datum des Gehalts zwischen dem 01.01.2019 und dem 31.12.2019 liegen.
SQL SUM( ) und GROUP BY
Die SUM() Funktion fasst die gesamte Tabelle zusammen. Wenn die Zeilen in Gruppen unterteilt werden und dazu die SUM() Funktion als Spaltenausgabe genutzt wird, wird die Summe für jede Gruppe ausgegeben.
SELECT SUM(Spalte), Spalte_X
FROM Tabelle
GROUP BY Spalte_X;
SQL SUM( ) und GROUP BY - Beispiel
Ein Unternehmen das Einkommen all ihrer Mitarbeiter für das Jahr 2019 überprüfen:
SELECT Mitarbeiter_ID, Nachname, Vorname, SUM(Gehalt) AS Gehalt_2019
FROM Personal
WHERE Datum BETWEEN '2019-01-01' AND '2019-12-31'
GROUP BY Mitarbeiter_ID, Nachname, Vorname;
Das SELECT Statement gibt die Spalten Mitarbeiter_ID, Nachname, Vorname und die Summe der Gehälter als Spaltenname ‘Gehalt_2019’ wieder. Die Tabelle Personal wird dafür genutzt. Als Bedingung muss das Datum des Gehalts zwischen dem 01.01.2019 und 31.12.2019 liegen. Gruppiert wird nach den IDs der Mitarbeiter, damit die Summenfunktion für jeden einzelnen Mitarbeiter gilt, anstatt für die gesamte Tabelle.
SQL Summe aus mehreren Spalten
Um die Summe aus mehreren Spalten zu generieren, werden innerhalb der Klammer die gewünschten Spalten aufgelistet und mit einem Plus (+) zwischen ihnen verbunden.
SQL Summe aus mehreren Spalten - Beispiel
Das Unternehmen möchte das Gehalt inkl. Bonus wiedergeben lassen:
SELECT Mitarbeiter_ID, Nachname, Vorname, SUM(Gehalt + Bonus) AS Gehalt_2019
FROM Personal
WHERE Datum BETWEEN '2019-01-01' AND '2019-12-31'
GROUP BY Mitarbeiter_ID, Nachname, Vorname;
Das SELECT Statement gibt die Spalten Mitarbeiter_Name und die Summe der Gehälter inkl. Bonus als Spaltenname ‘Gesamtverdienst_2019’ wieder. Die Tabelle Personal wird dafür genutzt. Als Bedingung muss das Datum des Gehalts zwischen dem 01.01.2019 und 31.12.2019 liegen. Gruppiert wird nach den IDs der Mitarbeiter, damit die Summenfunktion für jeden einzelnen Mitarbeiter gilt, anstatt für die gesamte Tabelle.