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

Fonction AVG() dans MariaDB

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.