Syntaxe
|
AVG([DISTINCT] expression) [OVER (...)]
|
Paramètres
| Nom |
Description |
| expression |
Ce paramètre permet de spécifier la colonne ou l'expression numérique dont vous souhaitez calculer la moyenne. |
| DISTINCT |
Ce paramètre facultatif permet de calculer la moyenne uniquement des valeurs distinctes de l'expression. Si DISTINCT est utilisé, les valeurs dupliquées ne seront pas incluses dans le calcul de la moyenne. |
| OVER (...) |
Ce paramètre facultatif permet de spécifier une fenêtre d'analyse pour la fonction AVG, la transformant ainsi en une fonction de fenêtre analytique. Cela permet de calculer la moyenne sur un ensemble de lignes associées à la ligne actuelle, plutôt que sur l'ensemble du jeu de données. |
Description
Cette fonction permet de demander la moyenne de valeurs spécifiés.
Remarques
- Fonction d'agrégation classique et essentielle : La fonction AVG est l'une des fonctions d'agrégation les plus utilisées en SQL. Elle permet de résumer
un ensemble de données numériques en une seule valeur représentative : la moyenne arithmétique. Cela en fait un outil de base en statistiques descriptives dans les
requêtes analytiques.
- Gestion des valeurs nulles : Par défaut, AVG ignore automatiquement les valeurs NULL dans le calcul. Ainsi, seules les valeurs numériques non nulles sont
prises en compte, ce qui évite d'avoir des moyennes faussées par des données manquantes.
- Utilisation de DISTINCT pour filtrer les doublons : Avec le mot clef DISTINCT, la fonction AVG ne considère que les valeurs uniques dans l'ensemble
analysé. Cela peut être très utile lorsqu'on veut éviter que des répétitions biaisent la moyenne, notamment dans des cas où les doublons sont dus à des jointures ou
erreurs de saisie.
- Fonction de fenêtre pour les moyennes glissantes : En ajoutant le paramètre OVER (...), AVG devient une fonction analytique. Cela permet de calculer
des moyennes sur des partitions de données ou des plages définies autour de chaque ligne (par exemple, moyenne mobile sur 7 jours), ce qui est particulièrement utile
en séries temporelles.
- Compatible avec les clauses GROUP BY : En l'absence du mot clef OVER, AVG fonctionne comme une fonction d'agrégation standard, souvent utilisée avec
GROUP BY. Cela permet de calculer la moyenne pour chaque groupe distinct d'une colonne, comme la moyenne des ventes par produit ou par région.
- Importance du type de données : Le résultat de AVG dépend du type de l'expression passée : si on lui donne un entier (INT64), elle retourne un FLOAT64.
Cela garantit la précision du résultat, surtout lorsqu'on divise un total par un grand nombre de valeurs. Il est donc important de bien comprendre les conversions de
type implicites.
- Optimisation possible via les index de colonnes : Même si BigQuery ne fonctionne pas comme un SGBD classique avec des index physiques, la structure
des colonnes et la stratégie de partitionnement des tables peuvent améliorer la performance de AVG, surtout pour de très grandes tables.
- Sensibilité à la distribution des données : La moyenne peut être trompeuse si la distribution des données est fortement asymétrique (présence de valeurs
extrêmes). Dans ces cas, il peut être plus pertinent d'utiliser en complément des médianes ou des percentiles (PERCENTILE_CONT, par exemple) pour avoir une vision plus
équilibrée des données.
Dernière mise à jour : Jeudi, le 18 Juin 2020