Dans MariaDB, le AVG()
La fonction renvoie la valeur moyenne de l'expression donnée.
Le DISTINCT
L'option peut être utilisée pour renvoyer la moyenne des valeurs distinctes (c'est-à-dire supprimer les doublons avant de calculer la moyenne).
NULL
les valeurs sont ignorées.
Exemple de données
Supposons que nous ayons un tableau avec les données suivantes :
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products;
Résultat :
+----------+---------------------------------+--------------+ | VendorId | ProductName | ProductPrice | +----------+---------------------------------+--------------+ | 1001 | Left handed screwdriver | 25.99 | | 1001 | Right handed screwdriver | 25.99 | | 1001 | Long Weight (blue) | 14.75 | | 1001 | Long Weight (green) | 11.99 | | 1002 | Sledge Hammer | 33.49 | | 1003 | Chainsaw | 245.00 | | 1003 | Straw Dog Box | 55.99 | | 1004 | Bottomless Coffee Mugs (4 Pack) | 9.99 | +----------+---------------------------------+--------------+
Exemple
Nous pouvons utiliser la requête suivante pour obtenir la moyenne de tous les prix.
SELECT AVG(ProductPrice)
FROM Products;
Résultat :
52.898750
Dans ce cas, les informations de prix sont stockées dans le ProductPrice
colonne, et nous l'avons donc transmise comme argument à la AVG()
fonction, qui a ensuite calculé la moyenne et renvoyé le résultat.
Résultats filtrés
Le AVG()
La fonction opère sur les lignes renvoyées par la requête. Donc, si vous filtrez les résultats, le résultat de AVG()
reflétera cela.
SELECT AVG(ProductPrice)
FROM Products
WHERE VendorId = 1001;
Résultat :
19.680000
Dans ce cas, 19,680000 est le prix moyen de tous les produits proposés par le fournisseur spécifié.
Le DISTINCT
Mot clé
Vous pouvez utiliser le DISTINCT
mot-clé avec AVG()
pour ne calculer que des valeurs distinctes. Autrement dit, s'il existe des valeurs en double, elles sont traitées comme une seule valeur.
Exemple :
SELECT
AVG(ProductPrice) AS "All",
AVG(DISTINCT ProductPrice) AS "Distinct"
FROM Products;
Résultat :
+-----------+-----------+ | All | Distinct | +-----------+-----------+ | 52.898750 | 56.742857 | +-----------+-----------+
Dans ce cas, deux articles partagent le même prix (le tournevis pour gaucher et le tournevis pour droitier sont tous deux au prix de 25,99). Par conséquent, le AVG()
fonction, lorsqu'elle est utilisée avec la fonction DISTINCT
mot-clé, traite ces deux valeurs comme une seule et calcule son résultat en conséquence.
Fonctions de la fenêtre
Le AVG()
La fonction peut être utilisée dans les fonctions de fenêtre. Voir SQL AVG()
pour les débutants pour un exemple de ceci.