SUM do PostgreSQL
A função `SUM` no PostgreSQL calcula o total de uma coluna numérica. É uma ferramenta fundamental para agregar valores e obter insights dos dados.
Uso
A função `SUM` é empregada para encontrar o total de uma coluna numérica, geralmente usada com a cláusula `GROUP BY` para dados agregados. Ele é particularmente útil em cálculos financeiros e estatísticos.
SELECT SUM(column_name)
FROM table_name
[WHERE condition];
Nessa sintaxe, `SUM(nome_da_coluna)` calcula o total da coluna especificada a partir das linhas filtradas pela cláusula `WHERE`, se fornecida.
Compatibilidade de tipos de dados
A função `SUM` é compatível com tipos de dados numéricos, como `INT`, `FLOAT`, `NUMERIC` etc. A tentativa de somar uma coluna não numérica resultará em um erro.
Exemplos
1. Cálculo da soma básica
SELECT SUM(salary)
FROM employees;
Este exemplo calcula a soma total de todos os salários da tabela "Funcionários".
2. Soma com condição
SELECT SUM(salary)
FROM employees
WHERE department = 'Sales';
Aqui, a função `SUM` calcula o salário total dos funcionários do departamento de "Vendas" aplicando uma cláusula `WHERE`.
3. Usando SUM com GROUP BY
SELECT department, SUM(salary)
FROM employees
GROUP BY department;
Neste exemplo, a função `SUM` é usada com `GROUP BY` para calcular e retornar o salário total de cada departamento.
4. Manipulação de valores NULL com COALESCE
SELECT SUM(COALESCE(salary, 0))
FROM employees;
Este exemplo demonstra o uso do `COALESCE` para tratar os valores `NULL` como zero durante o cálculo da soma.
5. Como ordenar resultados após a agregação
SELECT department, SUM(salary)
FROM employees
GROUP BY department
ORDER BY SUM(salary) DESC;
Este exemplo mostra como ordenar os resultados com base na soma agregada em ordem decrescente.
Dicas e práticas recomendadas
- Filtre os dados adequadamente: Use cláusulas `WHERE` para excluir dados irrelevantes e obter uma soma mais precisa.
- Combine com GROUP BY: Ao analisar dados entre categorias, use `GROUP BY` para obter as somas de cada grupo.
- Manipular valores NULL: Use `COALESCE` para lidar com valores `NULL` em colunas numéricas.
- Garantir tipos de dados numéricos: Certifique-se de que a coluna que você está somando seja um tipo de dados numérico para evitar erros.
- Consideração de desempenho: Para conjuntos de dados grandes, considere a indexação de colunas envolvidas nas cláusulas `WHERE` e `GROUP BY` para otimizar o desempenho da consulta.