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
WHERE
antes doGROUP BY
. HAVING
deve 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 BY
para 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)
Contribuições de Rodrigo Martins