В SQLite, Sum()
функцията приема незадължителен DISTINCT
ключова дума, която ви позволява да добавяте само отделните стойности в групата. Тоест премахва всички дубликати от изчислението си.
Така че, ако има да кажем три реда, които съдържат 10, само един от тези редове ще бъде включен в резултатите.
Синтаксис
Синтаксисът при използване на DISTINCT
ключовата дума върви така:
Sum(DISTINCT X)
Където X
е името на колоната, за която добавяте стойности.
Пример
Помислете за следната таблица, наречена 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
По-долу е даден пример за получаване на отделната сума от всички цени.
SELECT Sum(DISTINCT Price)
FROM Products;
Резултат:
251.24
Ето го отново, но този път включвам и „неразличима“ sum()
за сравнение.
SELECT
Sum(Price),
Sum(DISTINCT Price)
FROM Products;
Резултат:
Sum(Price) Sum(DISTINCT Price) ---------- ------------------- 271.24 251.24
Така че неразличимата sum(Price)
добави всички стойности, независимо от дубликатите. Но sum(DISTINCT Price)
добави само отделните стойности.