In SQLite is de Sum()
functie accepteert een optionele DISTINCT
trefwoord waarmee u alleen de afzonderlijke waarden in de groep kunt toevoegen. Dat wil zeggen, het verwijdert eventuele duplicaten uit de berekening.
Dus als er bijvoorbeeld drie rijen zijn die 10 bevatten, wordt slechts één van die rijen in de resultaten opgenomen.
Syntaxis
De syntaxis bij gebruik van de DISTINCT
zoekwoord gaat als volgt:
Sum(DISTINCT X)
Waar X
is de naam van de kolom waarvoor u waarden toevoegt.
Voorbeeld
Bekijk de volgende tabel met de naam 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
Hieronder ziet u een voorbeeld van het verkrijgen van de afzonderlijke som van alle prijzen.
SELECT Sum(DISTINCT Price)
FROM Products;
Resultaat:
251.24
Hier is het weer, maar deze keer voeg ik ook een "niet-onderscheidende" sum()
toe ter vergelijking.
SELECT
Sum(Price),
Sum(DISTINCT Price)
FROM Products;
Resultaat:
Sum(Price) Sum(DISTINCT Price) ---------- ------------------- 271.24 251.24
Dus de niet-onderscheiden sum(Price)
alle waarden toegevoegd, ongeacht duplicaten. Maar sum(DISTINCT Price)
alleen de afzonderlijke waarden toegevoegd.