En SQLite, el Sum()
la función acepta un DISTINCT
opcional palabra clave que le permite agregar solo los distintos valores en el grupo. Es decir, elimina cualquier duplicado de su cálculo.
Entonces, si hay, digamos, tres filas que contienen 10, solo una de esas filas se incluirá en los resultados.
Sintaxis
La sintaxis cuando se usa DISTINCT
palabra clave es así:
Sum(DISTINCT X)
Donde X
es el nombre de la columna cuyos valores está agregando.
Ejemplo
Considere la siguiente tabla llamada Products
:
ProductId ProductName Price ---------- ------------- ---------- 1 Widget Holder 139.5 2 Blue Widget 10.0 3 Red Widget 10.0 4 Green Widget 10.0 5 Widget Stick 89.75 6 Foo Cap 11.99
A continuación se muestra un ejemplo de obtención de la suma distinta de todos los precios.
SELECT Sum(DISTINCT Price)
FROM Products;
Resultado:
251.24
Aquí está de nuevo, pero esta vez también incluyo un sum()
"no distinto" en aras de la comparación.
SELECT
Sum(Price),
Sum(DISTINCT Price)
FROM Products;
Resultado:
Sum(Price) Sum(DISTINCT Price) ---------- ------------------- 271.24 251.24
Así que el sum(Price)
no distinto agregó todos los valores independientemente de los duplicados. Pero sum(DISTINCT Price)
solo agregó los valores distintos.