SQL SUM()-Funktion
Die SQL SUM()-Funktion
Die Funktion SUM() gibt die Gesamtsumme einer numerischen Spalte zurück.
Beispiel
Gibt die Summe aller Quantity-Felder in der OrderDetails-Tabelle zurück:
SELECT SUM(Quantity)
FROM OrderDetails;
Try it Yourself »
Syntax
SELECT SUM(column_name)
FROM table_name
WHERE condition;
Demo-Datenbank
Nachfolgend sehen Sie eine Auswahl aus der in den Beispielen verwendeten Tabelle OrderDetails:
| OrderDetailID | OrderID | ProductID | Quantity |
|---|---|---|---|
| 1 | 10248 | 11 | 12 |
| 2 | 10248 | 42 | 10 |
| 3 | 10248 | 72 | 5 |
| 4 | 10249 | 14 | 9 |
| 5 | 10249 | 51 | 40 |
Hinzufügen einer Where-Klausel
Sie können eine WHERE-Klausel hinzufügen, um Bedingungen anzugeben:
Beispiel
Gibt die Anzahl der Bestellungen für das Produkt zurück mit ProductID 11:
SELECT SUM(Quantity)
FROM OrderDetails
WHERE ProdictId = 11;
Try it Yourself »
Verwenden Sie einen Alias
Geben Sie der zusammengefassten Spalte mithilfe des Schlüsselworts AS einen Namen.
Beispiel
Benennen Sie die Spalte "total":
SELECT SUM(Quantity) AS total
FROM OrderDetails;
Try it Yourself »
Verwenden von SUM() mit GROUP BY
Hier verwenden wir die Funktion SUM() und die Klausel GROUP BY, um die Quantity für jede OrderID in der Tabelle „OrderDetails“ zurückzugeben:
Beispiel
SELECT OrderID, SUM(Quantity) AS [Total Quantity]
FROM OrderDetails
GROUP BY OrderID;
Try it Yourself »
Später in diesem Tutorial erfahren Sie mehr über die Klausel GROUP BY.
SUM() mit einem Ausdruck
Der Parameter innerhalb der Funktion SUM() kann auch ein Ausdruck sein.
Wenn wir davon ausgehen, dass jedes Produkt in der Spalte OrderDetails 10 Dollar kostet, können wir den Gesamterlös in Dollar ermitteln, indem wir jede Menge mit 10 multiplizieren:
Beispiel
Use an expression inside the SUM() function:
SELECT SUM(Quantity * 10)
FROM OrderDetails;
Try it Yourself »
Wir können auch die Tabelle OrderDetails mit der Tabelle Products verknüpfen, um den tatsächlichen Betrag zu ermitteln, anstatt davon auszugehen, dass er 10 Dollar beträgt:
Beispiel
Join OrderDetails with Products, and use SUM() to find the total amount:
SELECT SUM(Price * Quantity)
FROM OrderDetails
LEFT JOIN Products ON OrderDetails.ProductID = Products.ProductID;
Try it Yourself »
Später in diesem Tutorial erfahren Sie mehr über Joins.