Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SUM()-Funktion in MySQL

In MySQL 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) [over_clause]

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                   |         NULL |
|     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:

389.70

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.

Nullwerte

Die SUM() Die Funktion ignoriert alle NULL-Werte. In unserer Beispieltabelle oben hat der Vorschlaghammer einen NULL-Wert in seinem ProductPrice Spalte, aber das wurde bei der Berechnung ignoriert.

Gefilterte Ergebnisse

Die SUM() Die Funktion arbeitet mit den von der Abfrage zurückgegebenen Zeilen. Wenn Sie also die Ergebnisse filtern, wird die Ausgabe 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:

363.71

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.