sql >> Base de Datos >  >> RDS >> Database

Cómo encontrar el promedio de una columna numérica en SQL

Problema:

Le gustaría calcular el promedio de los números almacenados en una columna.

Ejemplo:

Nuestra base de datos tiene una tabla llamada sale con datos en las siguientes columnas:id , city , year y amount .

id ciudad año cantidad
1 Los Ángeles 2017 2345,50
2 Chicago 2018 1345,46
3 Annandale 2016 900.56
4 Annandale 2017 23230.22
5 Los Ángeles 2018 12456.20
6 Chicago 2017 89000.40
7 Annandale 2018 21005.77
8 Chicago 2016 2300.89

Calculemos las ventas promedio, independientemente de la ciudad o el año.

Solución:

SELECT AVG(amount) as avg_amount
FROM sale;

Aquí está el resultado:

avg_amount
19073.125000

Discusión:

Si desea calcular el promedio de los valores numéricos almacenados en una columna, puede hacerlo mediante AVG() función agregada; toma como argumento el nombre de la columna cuyo promedio se quiere calcular. Si no ha especificado ninguna otra columna en SELECT cláusula, el promedio se calculará para todos los registros de la tabla.

Por supuesto, dado que es una función agregada, AVG() También se puede utilizar con grupos. Por ejemplo, si quisiéramos encontrar la venta promedio por ciudad, podemos escribir esta consulta:

SELECT city, AVG(amount) as avg_amount
FROM sale
GROUP BY city;

El promedio se calcula para cada ciudad:

ciudad cantidad
Los Ángeles 7400.850000
Chicago 30882.250000
Annandale 15045.516667

Además, si el promedio debe redondearse, puede pasar el resultado de AVG() función en ROUND() :

SELECT city, 
  ROUND(AVG(amount), 2) as avg_amount
FROM sale
GROUP BY city;