In MariaDB die SUM()
Aggregatfunktion gibt die Summe eines gegebenen Ausdrucks zurück.
Es kann auch verwendet werden, um die Summe aller unterschiedlichen (eindeutigen) Werte in einem Ausdruck zurückzugeben.
Syntax
Die Syntax lautet wie folgt:
SUM([DISTINCT] expr)
Beispieldaten
Angenommen, wir haben eine Tabelle namens Products
mit folgenden Daten:
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products;
Ergebnis:
+----------+---------------------------------+--------------+ | VendorId | ProductName | ProductPrice | +----------+---------------------------------+--------------+ | 1001 | Left handed screwdriver | 25.99 | | 1001 | Right handed screwdriver | 25.99 | | 1001 | Long Weight (blue) | 14.75 | | 1001 | Long Weight (green) | 11.99 | | 1002 | Sledge Hammer | 33.49 | | 1003 | Chainsaw | 245.00 | | 1003 | Straw Dog Box | 55.99 | | 1004 | Bottomless Coffee Mugs (4 Pack) | 9.99 | +----------+---------------------------------+--------------+
Beispiel
Wir können die folgende Abfrage verwenden, um die Summe aller Preise zu erhalten.
SELECT SUM(ProductPrice)
FROM Products;
Ergebnis:
423.19
Hier werden Preisinformationen im ProductPrice
gespeichert Spalte, und wir übergeben das als Argument an SUM()
Funktion, die dann die Summe berechnet und das Ergebnis zurückgibt.
Gefilterte Ergebnisse
Die SUM()
Die Funktion arbeitet mit den von der Abfrage zurückgegebenen Zeilen. Wenn Sie also die Ergebnisse filtern, das Ergebnis von SUM()
wird das widerspiegeln.
SELECT SUM(ProductPrice)
FROM Products
WHERE VendorId = 1001;
Ergebnis:
78.72
In diesem Fall ist 78,72 die Summe aller vom angegebenen Anbieter angebotenen Produkte.
Der DISTINCT
Schlüsselwort
Sie können den DISTINCT
verwenden Stichwort mit SUM()
nur unterschiedliche Werte zu berechnen. Das heißt, wenn doppelte Werte vorhanden sind, werden sie als ein Wert behandelt.
Beispiel:
SELECT SUM(DISTINCT ProductPrice)
FROM Products;
Ergebnis:
397.20
Unsere Tabelle enthält zwei Artikel mit demselben Preis (der Linkshänder-Schraubendreher und der Rechtshänder-Schraubendreher kosten beide 25,99). Der DISTINCT
Schlüsselwort führt dazu, dass beide Werte als ein Wert behandelt werden.
Fensterfunktionen
Wir können einen OVER
verwenden -Klausel mit SUM()
Funktion zum Erstellen einer Fensterfunktion. Siehe SQL SUM()
für Anfänger als Beispiel.