SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Como adicionar apenas os valores distintos com SQLite Sum()


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.