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.