SUM
Nesta documentação de SQL veremos como o SUM pode ser utilizado para retornar a soma de todos os valores de uma coluna numérica, ou mesmo resolver uma expressão.
Apresentaremos aqui como utilizar o SUM no SQL.
SUM: na prática
SELECT SUM(salario) FROM FUNCIONARIOS
Como funciona?
O SUM recebe como parâmetro uma coluna ou uma expressão e retorna um resultado.
Ao passar uma coluna, SUM somará todos os resultados da tabela que forem retornados para a coluna especificada.
Já ao receber uma expressão, SUM resolverá a expressão para cada valor antes de somá-los. Veja em mais detalhes como esses dois processos funcionam nos tópicos a seguir.
SUM recebendo uma coluna
Considere a tabela de produtos da Tabela 1.
id | preco |
1 | 20 |
2 | 30 |
3 | 50 |
Se quisermos saber a soma do preço de todos os produtos dessa tabela, precisaremos usar a seguinte query:
SELECT SUM(preco) FROM Produtos
O retorno dessa query seria 100,
porque 20 + 30 + 50 = 100.
Ao receber uma coluna como parâmetro, SUM somará todos os valores registrados nessa coluna.
SUM recebendo uma expressão
Como vimos anteriormente, SUM também pode receber como parâmetro uma expressão. Considere a mesma tabela de produtos que vimos antes:
id | preco |
1 | 20 |
2 | 30 |
3 | 50 |
Agora, ao invés de receber apenas a soma de tudo, queremos aplicar 10% de desconto em cada valor. Para isso, faríamos o seguinte:
SELECT SUM (preco - ((preco * 10) / 100)) FROM Produtos
O que será feito é que antes de somar qualquer valor, serão
subtraídos os 10% de desconto. Desse modo, o resultado desta query será 90.
porque 20 com 10% de desconto é 18
30 com 10% de desconto é 27
50 com 10% de desconto é 45
Desse modo: 18 + 27 + 45 = 90
Sintaxe
SUM (coluna)
SUM (expressao)
Exemplos de uso do SUM
Exemplo 1
Sum sendo utilizado para somar uma coluna da tabela carros:
Id | Carro | Velocidade |
1 | Ferrari 458 | 325 |
2 | Porsche 911 Carrera | 306 |
3 | BMW 325i | 240 |
SELECT SUM(Velocidade) FROM Carros
Resultado:
Total | 871 |
Exemplo 2
Sum sendo utilizado para calcular uma expressão que retornará a média de velocidade dos três registros da tabela carros:
Id | Carro | Velocidade |
1 | Ferrari 458 | 325 |
2 | Porsche 911 Carrera | 306 |
3 | BMW 325i | 240 |
SELECT SUM(Velocidade / 3) FROM Carros
Resultado:
Total | 290,333 |
Exemplo 3
Sum sendo utilizado para mostrar a soma de todas as velocidades cadastradas na tabela carros, agrupadas pelo fabricante:
Id | Fabricante | Carro | Velocidade |
1 | Ferrari | 458 | 325 |
2 | Porsche | 911 Carrera | 306 |
3 | BMW | 325i | 240 |
4 | Ferrari | F40 | 367 |
5 | BMW | M3 | 290 |
SELECT SUM(Velocidade) FROM Carros GROUP BY Fabricante
Resultado:
BMW | 530 |
Ferrari | 692 |
Porsche | 306 |