Database
 sql >> Base de Dados >  >> RDS >> Database

Como encontrar a média de uma coluna numérica no SQL

Problema:


Você gostaria de calcular a média dos números armazenados em uma coluna.

Exemplo:


Nosso banco de dados tem uma tabela chamada sale com dados nas seguintes colunas:id , city , year e amount .
id cidade ano quantidade
1 Los Angeles 2017 2345,50
2 Chicago 2018 1345,46
3 Annandale 2016 900,56
4 Annandale 2017 23230.22
5 Los Angeles 2018 12456,20
6 Chicago 2017 89.000,40
7 Annandale 2018 21005.77
8 Chicago 2016 2300,89

Vamos calcular a média de vendas, independente da cidade ou ano.

Solução:

SELECT AVG(amount) as avg_amount
FROM sale;

Aqui está o resultado:
avg_amount
19073.125000

Discussão:


Se você deseja calcular a média dos valores numéricos armazenados em uma coluna, pode fazê-lo usando o AVG() função agregada; ele recebe como argumento o nome da coluna cuja média você deseja calcular. Se você não especificou nenhuma outra coluna no SELECT cláusula, a média será calculada para todos os registros da tabela.

Claro, como é uma função agregada, AVG() também pode ser usado com grupos. Por exemplo, se quisermos encontrar a venda média por cidade, podemos escrever esta consulta:
SELECT city, AVG(amount) as avg_amount
FROM sale
GROUP BY city;

A média é calculada para cada cidade:
cidade quantidade
Los Angeles 7400,850000
Chicago 30882.250000
Annandale 15045.516667

Além disso, se a média tiver que ser arredondada, você pode passar o resultado do AVG() função em ROUND() :
SELECT city, 
  ROUND(AVG(amount), 2) as avg_amount
FROM sale
GROUP BY city;