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

Sådan tilføjer du bare de forskellige værdier med SQLite Sum()

I SQLite er Sum() funktionen accepterer en valgfri DISTINCT nøgleord, der sætter dig i stand til kun at tilføje de forskellige værdier i gruppen. Det vil sige, at den fjerner eventuelle dubletter fra sin beregning.

Så hvis der f.eks. er tre rækker, der indeholder 10, vil kun én af disse rækker blive inkluderet i resultaterne.

Syntaks

Syntaksen ved brug af DISTINCT søgeord lyder sådan her:

Sum(DISTINCT X)

Hvor X er navnet på den kolonne, som du tilføjer værdier for.

Eksempel

Overvej følgende tabel kaldet 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     

Nedenfor er et eksempel på at få den distinkte sum af alle priser.

SELECT Sum(DISTINCT Price) 
FROM Products;

Resultat:

251.24

Her er det igen, men denne gang inkluderer jeg også en "ikke-særlig" sum() for sammenligningens skyld.

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

Resultat:

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

Så den ikke-distinkte sum(Price) tilføjet alle værdier uanset dubletter. Men sum(DISTINCT Price) kun tilføjet de forskellige værdier.


  1. PostgreSQL:Rolle er ikke tilladt at logge ind

  2. MySQL vs PostgreSQL til webapplikationer

  3. SQLSTATE[HY000] [2002] Et forbindelsesforsøg mislykkedes.. - Ved forsøg på at oprette forbindelse fra lokal til fjernserver

  4. LØST:Microsoft Office 365 version 2009 kan ødelægge din databaseapplikation