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