sql >> Databáze >  >> RDS >> SQLite

Jak funguje SQLite Total()

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 

  1. Ukládání a analýza dokumentů v systému souborů Windows pomocí sémantického vyhledávání SQL Server – část 2

  2. Existuje PostgreSQL ekvivalent SQL Server Profiler?

  3. Oracle dynamic DESC a ASC v pořadí podle

  4. ORA-00900:neplatný příkaz SQL- při spuštění procedury v oracle 10g