En SQLite, el total()
La función devuelve la suma de todos los valores no NULL en un grupo.
Si no hay valores que no sean NULL, devuelve 0.0.
Esta función es similar a sum()
función, excepto en la forma en que maneja las entradas NULL. Cuando no hay valores que no sean NULL, entonces sum()
devuelve NULL (en lugar de 0.0 como total()
función devuelve).
Ejemplo
Considere la siguiente tabla.
SELECT * FROM Products;
Resultado:
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
Podemos usar el total()
función para obtener un total de los precios.
SELECT total(Price) FROM Products;
Resultado:
738.22
Aunque el precio de la última fila es NULL, el total()
la función puede manejar eso, porque agrega todos los valores que no son NULL e ignora el valor NULL.
Todos los valores NULL
Si no hay valores que no sean NULL, el resultado es 0.0.
SELECT total(Price)
FROM Products
WHERE ProductId = 5;
Resultado:
0.0
Aquí es donde total()
y sum()
diferir de. En este caso, sum()
habría devuelto NULL.
El total()
La función siempre devuelve un valor de punto flotante.
Sin embargo, tenga en cuenta que esto no se ajusta al estándar SQL. Si desea utilizar un código compatible con el estándar, utilice sum()
.
Obtener el total de un subconjunto
Aquí hay otro ejemplo que usa un WHERE
cláusula para devolver un subconjunto de la tabla.
SELECT total(Price)
FROM Products
WHERE ProductId > 2;
Resultado:
209.27
Esta vez está agregando valores que no son NULL, por lo que obtengo un resultado que no es NULL.
Aquí hay otro que filtra por la misma columna que estoy agregando.
SELECT total(Price)
FROM Products
WHERE Price < 150;
Resultado:
348.77