Database
 sql >> Base de données >  >> RDS >> Database

Comment trouver la moyenne d'une colonne numérique en SQL

Problème :

Vous souhaitez calculer la moyenne des nombres stockés dans une colonne.

Exemple :

Notre base de données a une table nommée sale avec des données dans les colonnes suivantes :id , city , year , et amount .

identifiant ville année montant
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 89000.40
7 Annandale 2018 21005.77
8 Chicago 2016 2300.89

Calculons les ventes moyennes, quelle que soit la ville ou l'année.

Solution :

SELECT AVG(amount) as avg_amount
FROM sale;

Voici le résultat :

montant_avg
19073.125000

Discussion :

Si vous souhaitez calculer la moyenne des valeurs numériques stockées dans une colonne, vous pouvez le faire en utilisant le AVG() fonction d'agrégation ; il prend comme argument le nom de la colonne dont on veut calculer la moyenne. Si vous n'avez pas spécifié d'autres colonnes dans le SELECT clause, la moyenne sera calculée pour tous les enregistrements de la table.

Bien sûr, puisqu'il s'agit d'une fonction d'agrégation, AVG() peut également être utilisé avec des groupes. Par exemple, si nous souhaitons trouver la vente moyenne par ville, nous pouvons écrire cette requête :

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

La moyenne est calculée pour chaque ville :

ville montant
Los Angeles 7400.850000
Chicago 30882.250000
Annandale 15045.516667

De plus, si la moyenne doit être arrondie, vous pouvez passer le résultat de la AVG() fonction dans ROUND() :

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