SQLite
 sql >> Database >  >> RDS >> SQLite

Come aggiungere solo i valori distinti con SQLite Sum()

In SQLite, il Sum() la funzione accetta un DISTINCT opzionale parola chiave che consente di aggiungere solo i valori distinti nel gruppo. Cioè, rimuove tutti i duplicati dal suo calcolo.

Quindi, se ci sono, diciamo, tre righe che ne contengono 10, solo una di queste righe verrà inclusa nei risultati.

Sintassi

La sintassi quando si utilizza DISTINCT la parola chiave va così:

Sum(DISTINCT X)

Dove X è il nome della colonna per cui stai aggiungendo i valori.

Esempio

Considera la seguente tabella chiamata 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     

Di seguito è riportato un esempio di come ottenere la somma distinta di tutti i prezzi.

SELECT Sum(DISTINCT Price) 
FROM Products;

Risultato:

251.24

Eccolo di nuovo, ma questa volta includo anche un sum() "non distinto". per amor di confronto.

SELECT 
  Sum(Price),
  Sum(DISTINCT Price) 
FROM Products;

Risultato:

Sum(Price)  Sum(DISTINCT Price)
----------  -------------------
271.24      251.24             

Quindi il non distinto sum(Price) aggiunto tutti i valori indipendentemente dai duplicati. Ma sum(DISTINCT Price) aggiunto solo i valori distinti.