sql >> Base de Datos >  >> RDS >> SQLite

Cómo funciona SQLite Total()

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