O SQLite
sum()
A função retorna a soma de todos os valores não NULL em um grupo. Se não houver valores não NULL, ele retornará NULL.
Esta função basicamente permite somar todos os valores em um conjunto de resultados ou uma tabela.
Exemplo
Aqui está um exemplo para demonstrar seu uso.
SELECT sum(Price) FROM Products;
Resultado:
738.22
Este exemplo provavelmente não fará sentido se você não puder ver os valores reais na tabela.
Aqui está uma consulta que retorna todas as linhas dessa tabela.
SELECT * FROM Products;
Resultado:
ProductId ProductName Price ---------- --------------------- ---------- 1 Blue Widgets (6 Pack) 389.45 2 Widget Holder 139.5 3 Widget Opener 89.27 4 Foobar Set 120.0 5 Red Widget
Então a
sum()
função simplesmente adicionou todos os valores no Preço coluna. Observe que o preço da última linha é NULL. Isso está ok. A
sum()
função simplesmente adiciona todos os valores não NULL. Valores NULOS
Se não houver valores não NULL, o resultado será NULL.
SELECT sum(Price)
FROM Products
WHERE ProductId = 5;
Resultado:
(Isso está intencionalmente em branco, porque retornou NULL).
Isso é diferente de como o SQLite
total()
função lida com valores NULL (retorna 0,0). Ambos sum()
e total()
fazer a mesma coisa, exceto por essa diferença. Conjunto de resultados menor
O primeiro exemplo adicionou todas as linhas na tabela. Mas não precisa ser a mesa inteira. Como visto no exemplo “NULL”, você também pode usar um
WHERE
cláusula para adicionar um subconjunto de valores na tabela. Aqui está outro exemplo que usa um
WHERE
cláusula. SELECT sum(Price)
FROM Products
WHERE ProductId < 3;
Resultado:
528.95
Desta vez, está adicionando valores não NULL, então recebo um resultado não NULL.
Aqui está outro que filtra pela mesma coluna que estou adicionando.
SELECT sum(Price)
FROM Products
WHERE Price > 100;
Resultado:
648.95
Entradas não inteiras
Se qualquer entrada não for um inteiro ou NULL então
sum()
retorna um valor de ponto flutuante que pode ser uma aproximação da soma verdadeira. Você pode obter alguns resultados inesperados nesses casos.
Abaixo está um exemplo que tenta adicionar vários números de fax.
Primeiro, vamos ver a lista de números de fax.
SELECT Fax FROM Customer
WHERE Fax IS NOT NULL;
Resultado:
Fax ------------------ +55 (12) 3923-5566 +420 2 4172 5555 +55 (11) 3033-4564 +55 (11) 3055-8131 +55 (21) 2271-7070 +55 (61) 3363-7855 +1 (780) 434-5565 +1 (604) 688-8756 +1 (650) 253-0000 +1 (425) 882-8081 +1 (212) 221-4679 +1 (408) 996-1011
Agora, aqui está o que acontece se eu tentar adicioná-los.
SELECT sum(Fax)
FROM Customer;
Resultado:
701.0
Neste caso, parece ter adicionado todos os prefixos.
Aqui está o que acontece se eu usar
sum()
em uma coluna de strings. SELECT sum(ProductName)
FROM Products;
Resultado:
0.0
A palavra-chave DISTINTA
Você pode adicionar o
DISTINCT
palavra-chave para adicionar apenas valores distintos. Para fazer isso, use sum(DISTINCT X)
onde X
é o nome da coluna. Consulte Como adicionar apenas os valores distintos com SQLite Sum() para obter um exemplo.