In MySQL wird die Funktion sum() verwendet, um die Summe einer Menge von Werten oder Ausdrücken zu berechnen. Die Syntax lautet „SUM (DISTINCT-Ausdruck)“. . Die Funktion sum() muss zusammen mit der SELECT-Anweisung verwendet werden. Wenn die Funktion SUM() in einer SELECT-Anweisung verwendet wird, die keine passenden Zeilen zurückgibt, gibt die Funktion SUM() NULL anstelle von 0 zurück. Die Funktion ignoriert die Spalten bei der Berechnung von Zeilen mit NULL-Werten.
Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.
mysql sum()-Funktion
SUM()-Funktion wird verwendet, um die Summe einer Reihe von Werten oder Ausdrücken zu berechnen. Die Syntax der SUM()-Funktion lautet wie folgt:
SUM(DISTINCT expression)
Parameter | Beschreibung |
---|---|
Ausdruck | Erforderlich. Feld oder Formel |
Wie funktioniert die Funktion SUM()?
Wenn Sie die SUM-Funktion in einer SELECT-Anweisung verwenden, die keine passenden Zeilen zurückgibt, gibt die SUM-Funktion NULL statt 0 zurück.
DISTINCT-Operator ermöglicht die Berechnung unterschiedlicher Werte in einer Menge. Die Funktion
SUM() ignoriert bei der Berechnung Zeilen mit NULL-Spaltenwerten.
sum()-Funktionsverwendungsbeispiel
Um das Verständnis zu erleichtern, erstellen Sie zunächst eine Schüler-Bewertungstabelle tb_students_score. Der Dateninhalt der Schüler-Bewertungstabelle lautet wie folgt:
mysql> SELECT * FROM tb_students_score;
Verwenden Sie die Summe ()-Funktion in Die Gesamtpunktzahl der Schülernoten wird in der Tabelle tb_students_score berechnet
mysql> SELECT SUM(student_score) AS score_sum FROM tb_students_score;
Wie aus den Abfrageergebnissen ersichtlich ist, gibt die SUM()-Funktion die Summe aller Schülernoten als 942 zurück.
Erweiterte Kenntnisse:
MySQL SUM mit GROUP BY-Klausel
In Kombination mit der GROUP BY-Klausel berechnet die Funktion SUM() die Summe für jede in der GROUP BY-Klausel angegebene Gruppierung. Beispielsweise kann der Gesamtbetrag jeder Bestellung mithilfe der SUM-Funktion mit einer GROUP BY-Klausel wie folgt berechnet werden:
SELECT orderNumber, FORMAT(SUM(quantityOrdered * priceEach),2) total FROM orderdetails GROUP BY orderNumber ORDER BY SUM(quantityOrdered * priceEach) DESC;
Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse:
+-------------+-----------+ | orderNumber | total | +-------------+-----------+ | 10165 | 67,392.85 | | 10287 | 61,402.00 | | 10310 | 61,234.67 | | 10212 | 59,830.55 | *** 此处省略了一大波数据 ***** | 10116 | 1,627.56 | | 10158 | 1,491.38 | | 10144 | 1,128.20 | | 10408 | 615.45 | +-------------+-----------+ 327 rows in set
MySQL SUM with HAVING
Sie können die HAVING-Klausel in der SUM-Funktion verwenden, um Ergebnisse basierend auf bestimmten Kriterien zu filtern. Sie können beispielsweise die Gesamtbestellmenge berechnen und nur Bestellungen auswählen, deren Gesamtmenge größer als 60.000 ist. Die folgende Abfrageanweisung:
SELECT orderNumber, FORMAT(SUM(quantityOrdered * priceEach),2) FROM orderdetails GROUP BY orderNumber HAVING SUM(quantityOrdered * priceEach) > 60000 ORDER BY SUM(quantityOrdered * priceEach);
Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse:
MySQL SUM und LIMIT
Angenommen, Sie möchten die Summe der zehn teuersten Produkte der Welt berechnen In der Produkttabelle können Sie die folgende Abfrage erstellen:
SELECT SUM(buyprice) FROM products ORDER BY buyprice DESC LIMIT 10;
Führen Sie die obige Abfrageanweisung aus und erhalten Sie das folgende Ergebnis:
Es funktioniert nicht, da die SELECT-Anweisung mit der SUM-Funktion nur eine Zeile und die LIMIT-Klausel zurückgibt Einschränkung: Die Anzahl der zurückzugebenden Zeilen ist ungültig. Um dieses Problem zu lösen, verwenden Sie die folgende Unterabfrage:
SELECT FORMAT(SUM(buyprice),2) FROM (SELECT buyprice FROM products ORDER BY buyprice DESC LIMIT 10) price;
Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse -
Wie wird die obige Anweisung ausgeführt? Die Unterabfrage wählt die zehn teuersten Produkte aus. Die äußere Abfrage berechnet die Summe der zehn Produkte mit dem höchsten Preis, die von der Unterabfrage zurückgegeben wurden.
MySQL SUM vs NULL
Wenn keine übereinstimmenden Zeilen vorhanden sind, gibt die SUM-Funktion einen NULL-Wert zurück. Manchmal möchten Sie, dass die SUM-Funktion 0 statt NULL zurückgibt. In diesem Fall können Sie die COALESCE-Funktion verwenden. Die COALESCE-Funktion akzeptiert zwei Parameter. Wenn der erste Parameter NULL ist, wird der zweite Parameter zurückgegeben. Beachten Sie die folgende Abfrageanweisung:
SELECT COALESCE(SUM(quantityOrdered * priceEach),0) FROM orderdetails WHERE productCode = 'S1_212121';
Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse
【Verwandte Empfehlungen:
MySQL-Video-TutorialDas obige ist der detaillierte Inhalt vonSo verwenden Sie die Funktion sum() in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!