No SQLite, o
total() 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á 0,0.
Esta função é semelhante à
sum() função, exceto na forma como lida com entradas NULL. Quando não há valores não NULL, então sum() retorna NULL (em vez de 0.0 como o total() função retorna). Exemplo
Considere a tabela a seguir.
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
Podemos usar o
total() função para obter um total dos preços. SELECT total(Price) FROM Products; Resultado:
738.22
Mesmo que o preço da última linha seja NULL, o
total() A função pode lidar com isso, porque adiciona todos os valores não NULL e ignora o valor NULL. Todos os valores NULOS
Se não houver valores não NULL, o resultado será 0,0.
SELECT total(Price)
FROM Products
WHERE ProductId = 5; Resultado:
0.0
É aqui que
total() e sum() diferem. Neste caso, sum() teria retornado NULL. O
total() A função sempre retorna um valor de ponto flutuante. Tenha em mente que isso não está em conformidade com o padrão SQL. Se você quiser usar código compatível com o padrão, use
sum() . Obter o total de um subconjunto
Aqui está outro exemplo que usa um
WHERE cláusula para retornar um subconjunto da tabela. SELECT total(Price)
FROM Products
WHERE ProductId > 2; Resultado:
209.27
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 total(Price)
FROM Products
WHERE Price < 150; Resultado:
348.77