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

Cómo agregar solo los valores distintos con SQLite Sum()

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.