No SQLite, o
Sum()
função aceita um opcional DISTINCT
palavra-chave que permite adicionar apenas os valores distintos no grupo. Ou seja, ele remove quaisquer duplicatas de seu cálculo. Portanto, se houver, digamos, três linhas que contenham 10, apenas uma dessas linhas será incluída nos resultados.
Sintaxe
A sintaxe ao usar o
DISTINCT
palavra-chave fica assim:Sum(DISTINCT X)
Onde
X
é o nome da coluna para a qual você está adicionando valores. Exemplo
Considere a seguinte tabela chamada
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
Abaixo está um exemplo de como obter a soma distinta de todos os preços.
SELECT Sum(DISTINCT Price)
FROM Products;
Resultado:
251.24
Aqui está novamente, mas desta vez eu também incluo um
sum()
“não distinto” para efeito de comparação. SELECT
Sum(Price),
Sum(DISTINCT Price)
FROM Products;
Resultado:
Sum(Price) Sum(DISTINCT Price) ---------- ------------------- 271.24 251.24
Portanto, a
sum(Price)
não distinta adicionou todos os valores, independentemente de duplicatas. Mas sum(DISTINCT Price)
apenas adicionou os valores distintos.