W SQLite total() funkcja zwraca sumę wszystkich wartości innych niż NULL w grupie.
Jeśli nie ma wartości innych niż NULL, zwraca 0.0.
Ta funkcja jest podobna do sum() funkcji, z wyjątkiem sposobu, w jaki obsługuje wejścia NULL. Jeśli nie ma wartości innych niż NULL, sum() zwraca NULL (zamiast 0.0 jak total() funkcja powraca).
Przykład
Rozważ poniższą tabelę.
SELECT * FROM Products; Wynik:
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
Możemy użyć total() funkcja, aby uzyskać sumę cen.
SELECT total(Price) FROM Products; Wynik:
738.22
Mimo że cena ostatniego wiersza wynosi NULL, total() funkcja może sobie z tym poradzić, ponieważ dodaje wszystkie wartości inne niż NULL i ignoruje wartość NULL.
Wszystkie wartości NULL
Jeśli nie ma wartości innych niż NULL, wynikiem jest 0.0.
SELECT total(Price)
FROM Products
WHERE ProductId = 5; Wynik:
0.0
To tutaj total() i sum() różnić się. W tym przypadku sum() zwróciłby NULL.
total() funkcja zawsze zwraca wartość zmiennoprzecinkową.
Pamiętaj jednak, że nie jest to zgodne ze standardem SQL. Jeśli chcesz użyć kodu zgodnego ze standardem, użyj sum() .
Uzyskaj sumę podzbioru
Oto kolejny przykład, który używa WHERE klauzula zwracająca podzbiór tabeli.
SELECT total(Price)
FROM Products
WHERE ProductId > 2; Wynik:
209.27
Tym razem dodaje wartości różne od NULL, więc otrzymuję wynik inny niż NULL.
Oto kolejny, który filtruje według tej samej kolumny, którą dodaję.
SELECT total(Price)
FROM Products
WHERE Price < 150; Wynik:
348.77