SQLite
 sql >> Database >  >> RDS >> SQLite

Come funziona SQLite Total()

In SQLite, il total() La funzione restituisce la somma di tutti i valori non NULL in un gruppo.

Se non sono presenti valori diversi da NULL, restituisce 0.0.

Questa funzione è simile a sum() funzione, tranne nel modo in cui gestisce gli input NULL. Quando non ci sono valori non NULL, allora sum() restituisce NULL (invece di 0.0 come total() funzione restituisce).

Esempio

Considera la tabella seguente.

SELECT * FROM Products;

Risultato:

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                    

Possiamo usare il total() funzione per ottenere il totale dei prezzi.

SELECT total(Price) FROM Products;

Risultato:

738.22

Anche se il prezzo dell'ultima riga è NULL, il total() la funzione può gestirlo, perché aggiunge tutti i valori non NULL e ignora il valore NULL.

Tutti i valori NULL

Se non sono presenti valori diversi da NULL, il risultato è 0.0.

SELECT total(Price) 
FROM Products
WHERE ProductId = 5;

Risultato:

0.0      

Qui è dove total() e sum() differire. In questo caso, sum() sarebbe tornato NULL.

Il total() La funzione restituisce sempre un valore in virgola mobile.

Tieni presente che questo non è conforme allo standard SQL. Se desideri utilizzare un codice conforme allo standard, usa sum() .

Ottieni il totale di un sottoinsieme

Ecco un altro esempio che utilizza un WHERE clausola per restituire un sottoinsieme della tabella.

SELECT total(Price) 
FROM Products
WHERE ProductId > 2;

Risultato:

209.27

Questa volta aggiunge valori non NULL, quindi ottengo un risultato non NULL.

Eccone un altro che filtra in base alla stessa colonna che sto aggiungendo.

SELECT total(Price) 
FROM Products
WHERE Price < 150;

Risultato:

348.77