El sum()
de SQLite La función devuelve la suma de todos los valores no NULL en un grupo.
Si no hay valores que no sean NULL, devuelve NULL.
Esta función básicamente le permite sumar todos los valores en un conjunto de resultados o una tabla.
Ejemplo
Aquí hay un ejemplo para demostrar su uso.
SELECT sum(Price) FROM Products;
Resultado:
738.22
Este ejemplo probablemente no tenga sentido si no puede ver los valores reales en la tabla.
Aquí hay una consulta que devuelve todas las filas de esa 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
Entonces el sum()
simplemente agregó todos los valores en el Precio columna.
Observe que el precio de la última fila es NULL. Está bien. El sum()
la función simplemente agrega todos los valores que no son NULL.
Valores NULOS
Si no hay valores que no sean NULL, el resultado es NULL.
SELECT sum(Price)
FROM Products
WHERE ProductId = 5;
Resultado:
(Eso está intencionalmente en blanco, porque devolvió NULL).
Esto es diferente a cómo SQLite total()
La función trata con valores NULL (devuelve 0.0). Ambos sum()
y total()
hacer lo mismo, excepto por esta diferencia.
Conjunto de resultados más pequeño
El primer ejemplo agregó todas las filas de la tabla. Pero no tiene que ser toda la mesa. Como se ve en el ejemplo "NULL", también puede usar un WHERE
cláusula para agregar un subconjunto de valores en la tabla.
Aquí hay otro ejemplo que usa un WHERE
cláusula.
SELECT sum(Price)
FROM Products
WHERE ProductId < 3;
Resultado:
528.95
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 sum(Price)
FROM Products
WHERE Price > 100;
Resultado:
648.95
Entradas no enteras
Si alguna entrada no es un número entero o NULL entonces sum()
devuelve un valor de punto flotante que podría ser una aproximación a la suma real.
Es posible que obtenga algunos resultados inesperados en tales casos.
A continuación se muestra un ejemplo que intenta agregar un montón de números de fax.
Primero, veamos la lista de números de fax.
SELECT Fax FROM Customer
WHERE Fax IS NOT NULL;
Resultado:
Fax ------------------ +55 (12) 3923-5566 +420 2 4172 5555 +55 (11) 3033-4564 +55 (11) 3055-8131 +55 (21) 2271-7070 +55 (61) 3363-7855 +1 (780) 434-5565 +1 (604) 688-8756 +1 (650) 253-0000 +1 (425) 882-8081 +1 (212) 221-4679 +1 (408) 996-1011
Ahora, esto es lo que sucede si intento sumarlas.
SELECT sum(Fax)
FROM Customer;
Resultado:
701.0
En este caso parece haber añadido todos los prefijos.
Esto es lo que sucede si uso sum()
en una columna de cadenas.
SELECT sum(ProductName)
FROM Products;
Resultado:
0.0
La palabra clave DISTINTA
Puede agregar el DISTINCT
palabra clave para agregar solo valores distintos. Para hacer esto, use sum(DISTINCT X)
donde X
es el nombre de la columna.
Consulte Cómo agregar solo los valores distintos con SQLite Sum() para ver un ejemplo.