AVG |
Moyenne |
|---|---|
| Oracle Database SQL | Oracle 6 ou supérieure |
Syntaxe
| AVG(attribut) |
Paramètres
| Nom | Description |
|---|---|
| attribut | Ce paramètre permet d'indiquer le nom de la colonne où il faut effectuer le calcul de la moyenne. |
Description
Cette fonction permet de calculer la moyenne d'un groupe de lignes.
Algorithme
|
MODULE AVG(Élément) Somme ← 0 BOUCLE POUR I ← 1 JUSQU'A Nombre Élément Somme ← Somme + Élément [ I ] FIN BOUCLE POUR RETOURNE Somme / Nombre Élément |
Remarques
- Calcule la moyenne arithmétique d'une colonne numérique : La fonction AVG retourne la moyenne (somme des valeurs divisée par leur nombre) d'une colonne spécifiée. Elle fonctionne uniquement sur des colonnes de type numérique, comme NUMBER, FLOAT,...
- Ignore automatiquement les valeurs NULL : Lorsqu'un champ contient des valeurs NULL, celles-ci ne sont pas prises en compte ni dans le numérateur (somme) ni dans le dénominateur (compte). Cela évite les biais dans le résultat mais peut fausser l'analyse si on ne le sait pas.
- Utilisable avec ou sans clause GROUP BY : AVG peut être utilisée pour calculer une moyenne globale sur l'ensemble des lignes d'une table, ou bien dans le cadre d'une agrégation par groupe (avec GROUP BY) pour obtenir une moyenne par catégorie ou segment.
- Compatible avec les clauses analytiques : En utilisant la syntaxe AVG(...) OVER (...), cette fonction peut devenir analytique, permettant de calculer des moyennes mobiles, cumulées, ou fenêtrées sans regrouper les lignes. C'est très puissant pour les analyses de tendances.
- Peut être combinée avec DISTINCT pour filtrer les doublons : La syntaxe AVG(DISTINCT attribut) permet de calculer la moyenne uniquement sur les valeurs uniques de la colonne. Cela peut être utile pour éliminer les redondances dans des mesures.
- Le résultat est souvent en type numérique à plus haute précision : Le résultat retourné par AVG est généralement de type NUMBER avec une précision supérieure à celle des données d'origine. Cela permet d'éviter les pertes d'exactitude, notamment lors de moyennes sur des grands ensembles.
- Ne fonctionne que sur des colonnes simples : AVG attend un unique argument scalaire. Pour calculer la moyenne de l'addition de deux colonnes, il faut utiliser une expression, comme AVG(col1 + col2), ou calculer séparément.
- Peut être utilisée dans des sous-requêtes ou des conditions : On peut insérer AVG dans des sous-requêtes, ou l'utiliser pour filtrer des lignes dans une clause HAVING, par exemple pour trouver les groupes dont la moyenne dépasse un certain seuil.
Exemple
Prenons pour base la table «listvalue» avec le contenu suivant :
| id | value | name |
| 1 | 300 | Jean |
| 2 | 6000 | Philippe |
| 3 | 5000 | Samuel |
| 4 | 4000 | Gabriel |
| 5 | 200 | Mathieu |
| 6 | 6000 | Paul |
Si vous voulez retourner la moyenne des valeurs de cette table vous entrez donc les instructions suivantes :
- SELECT AVG(value) FROM listvalue;
Et les informations vous seront retournés sous la forme suivante :
| AVG(value) |
| 3583.3333 |
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Vendredi, le 15 mai 2015