Como calcular a média de valores agrupados no SQL?
No SQL, a função AVG() permite calcular a média de valores dentro de grupos, quando combinada com GROUP BY. Isso é útil para analisar dados financeiros, desempenho de produtos, entre outros cenários.
Calculando a média de preços por categoria
Se quisermos calcular o preço médio dos produtos em cada categoria:
SELECT categoria, AVG(preco) AS preco_medio
FROM produtos
GROUP BY categoria;
Isso retorna a média dos preços para cada categoria de produtos.
Calculando a média de pedidos por cliente
Se quisermos saber o valor médio gasto por cliente em pedidos:
SELECT cliente_id, AVG(valor) AS media_pedidos
FROM pedidos
GROUP BY cliente_id;
Aqui, calculamos o valor médio dos pedidos por cliente.
Filtrando grupos com HAVING
Podemos utilizar HAVING para exibir apenas grupos cuja média esteja acima de um determinado valor:
SELECT cliente_id, AVG(valor) AS media_pedidos
FROM pedidos
GROUP BY cliente_id
HAVING AVG(valor) > 100;
Essa consulta retorna apenas os clientes cujo valor médio dos pedidos seja maior que 100.
Cuidados ao calcular a média de valores agrupados
AVG()ignora valores NULL automaticamente, o que pode afetar a precisão da média.- Para incluir apenas registros válidos, utilize
WHEREantes doGROUP BY. HAVINGdeve ser usado para filtrar grupos após a agregação.
Quando calcular médias agrupadas no SQL é útil?
O cálculo da média de valores no SQL é amplamente utilizado em relatórios financeiros, monitoramento de desempenho e estatísticas de negócios. Em um e-commerce, podemos calcular o preço médio dos produtos em cada categoria. No setor educacional, podemos calcular a média de notas dos alunos por turma. O uso correto da função AVG() com GROUP BY ajuda a consolidar informações e a tomar decisões estratégicas baseadas em dados.
Algumas aplicações:
- Calcular a média de preços por categoria de produtos
- Determinar a média de gastos por cliente
- Obter a média de notas dos alunos por turma
- Gerar relatórios de faturamento médio por mês
- Analisar a média de avaliações de produtos em um marketplace
Dicas para quem está começando
- Use
AVG(coluna)para calcular a média dos valores - Combine
AVG()comGROUP BYpara segmentar os dados - Se precisar filtrar a média após o agrupamento, utilize
HAVING - Certifique-se de que a coluna analisada não contém valores NULL inesperados
- Se quiser visualizar os dados ordenados, utilize
ORDER BY AVG(coluna)
Rodrigo Martins
Especialista em bancos de dados SQL e otimização de consultas para aplicações críticas.
Mais sobre o autor