V SQLite, total() funkce vrací součet všech hodnot ve skupině, které nejsou NULL.
Pokud neexistují žádné jiné hodnoty než NULL, vrátí 0.0.
Tato funkce je podobná funkci sum() s výjimkou způsobu, jakým zpracovává NULL vstupy. Pokud nejsou žádné jiné hodnoty než NULL, pak sum() vrátí NULL (místo 0,0 jako total() funkce se vrátí).
Příklad
Zvažte následující tabulku.
SELECT * FROM Products; Výsledek:
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
Můžeme použít total() funkce pro získání součtu cen.
SELECT total(Price) FROM Products; Výsledek:
738.22
I když je cena na posledním řádku NULL, total() funkce to zvládne, protože přidá všechny hodnoty, které nejsou NULL, a ignoruje hodnotu NULL.
Všechny hodnoty NULL
Pokud neexistují žádné jiné hodnoty než NULL, je výsledkem 0.0.
SELECT total(Price)
FROM Products
WHERE ProductId = 5; Výsledek:
0.0
Toto je místo total() a sum() lišit. V tomto případě sum() by vrátil NULL.
total() funkce vždy vrací hodnotu s plovoucí desetinnou čárkou.
Mějte na paměti, že to však neodpovídá standardu SQL. Pokud chcete použít standardní vyhovující kód, použijte sum() .
Získejte součet podmnožiny
Zde je další příklad, který používá WHERE klauzule pro vrácení podmnožiny tabulky.
SELECT total(Price)
FROM Products
WHERE ProductId > 2; Výsledek:
209.27
Tentokrát přidává hodnoty jiné než NULL, takže dostanu výsledek, který není NULL.
Zde je další, který filtruje podle stejného sloupce, který přidávám.
SELECT total(Price)
FROM Products
WHERE Price < 150; Výsledek:
348.77