In SQLite das total()
Die Funktion gibt die Summe aller Nicht-NULL-Werte in einer Gruppe zurück.
Wenn es keine Nicht-NULL-Werte gibt, wird 0,0 zurückgegeben.
Diese Funktion ähnelt der sum()
Funktion, außer in der Art und Weise, wie NULL-Eingaben behandelt werden. Wenn es keine Nicht-NULL-Werte gibt, dann sum()
gibt NULL zurück (statt 0.0 wie total()
). Funktion gibt zurück).
Beispiel
Betrachten Sie die folgende Tabelle.
SELECT * FROM Products;
Ergebnis:
ProductId ProductName Price ---------- --------------------- ---------- 1 Blue Widgets (6 Pack) 389.45 2 Widget Holder 139.5 3 Widget Opener 89.27 4 Foobar Set 120.0 5 Red Widget
Wir können total()
verwenden Funktion, um die Summe der Preise zu erhalten.
SELECT total(Price) FROM Products;
Ergebnis:
738.22
Obwohl der Preis der letzten Zeile NULL ist, ist der total()
Die Funktion kann damit umgehen, da sie alle Nicht-NULL-Werte hinzufügt und den NULL-Wert ignoriert.
Alle NULL-Werte
Wenn es keine Nicht-NULL-Werte gibt, ist das Ergebnis 0,0.
SELECT total(Price)
FROM Products
WHERE ProductId = 5;
Ergebnis:
0.0
Hier ist total()
und sum()
sich unterscheiden. In diesem Fall sum()
hätte NULL zurückgegeben.
Die total()
Die Funktion gibt immer einen Fließkommawert zurück.
Beachten Sie jedoch, dass dies nicht dem SQL-Standard entspricht. Wenn Sie standardkonformen Code verwenden möchten, verwenden Sie sum()
.
Ermittle die Summe einer Teilmenge
Hier ist ein weiteres Beispiel, das ein WHERE
verwendet -Klausel, um eine Teilmenge der Tabelle zurückzugeben.
SELECT total(Price)
FROM Products
WHERE ProductId > 2;
Ergebnis:
209.27
Dieses Mal werden Nicht-NULL-Werte hinzugefügt, sodass ich ein Nicht-NULL-Ergebnis erhalte.
Hier ist eine weitere, die nach derselben Spalte filtert, die ich hinzufüge.
SELECT total(Price)
FROM Products
WHERE Price < 150;
Ergebnis:
348.77