La fonction d’agrégation AVG() dans le langage SQL permet de calculer une valeur moyenne sur un ensemble d’enregistrement de type numérique et non nul.
Syntaxe
La syntaxe pour utiliser cette fonction de statistique est simple :
SELECT AVG(nom_colonne) FROM nom_table
Cette requête permet de calculer la note moyenne de la colonne “nom_colonne” sur tous les enregistrements de la table “nom_table”. Il est possible de filtrer les enregistrements concernés à l’aide de la commande WHERE. Il est aussi possible d’utiliser la commande GROUP BY pour regrouper les données appartenant à la même entité.
A savoir : la syntaxe est conforme avec la norme SQL et fonctionne correctement avec tous les Systèmes de Gestion de Base de Données (SGBD), incluant : MySQL, PostgreSQL, Oracle et SQL Server.
Exemple
Imaginons une table “achat” qui représente toutes les ventes sur un site d’e-commerce, dans laquelle on enregistre le montant de l’achat, la date et le nom du client.
id | client | tarif | date |
---|---|---|---|
1 | Pierre | 102 | 2012-10-23 |
2 | Simon | 47 | 2012-10-27 |
3 | Marie | 18 | 2012-11-05 |
4 | Marie | 20 | 2012-11-14 |
5 | Pierre | 160 | 2012-12-03 |
Pour connaitre le montant moyen effectué par chaque client, il est possible d’utiliser une requête qui va utiliser :
- GROUP BY pour regrouper les ventes des mêmes clients
- La fonction AVG() pour calculer la moyenne des enregistrements
La requête sera donc la suivante :
SELECT client, AVG(tarif) FROM achat GROUP BY client
Le résultat sera le suivant :
client | AVG(tarif) |
---|---|
Pierre | 131 |
Simon | 47 |
Marie | 19 |