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.