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