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

Fonction SUM() dans MySQL

Dans MySQL, le SUM() la fonction d'agrégation renvoie la somme d'une expression donnée.

Il peut également être utilisé pour renvoyer la somme de toutes les valeurs distinctes (uniques) dans une expression.

Syntaxe

La syntaxe ressemble à ceci :

SUM([DISTINCT] expr) [over_clause]

Exemple de données

Supposons que nous ayons une table appelée Products 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                   |         NULL |
|     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 somme de tous les prix.

SELECT SUM(ProductPrice)
FROM Products;

Résultat :

389.70

Ici, les informations de prix sont stockées dans le ProductPrice colonne, et nous la passons donc comme argument à la SUM() fonction, qui calcule ensuite la somme et renvoie le résultat.

Valeurs nulles

La SUM() La fonction ignore toutes les valeurs NULL. Dans notre exemple de tableau ci-dessus, le marteau a une valeur NULL dans son ProductPrice colonne, mais cela a été ignoré dans le calcul.

Résultats filtrés

La SUM() La fonction opère sur les lignes renvoyées par la requête. Donc, si vous filtrez les résultats, la sortie de SUM() reflétera cela.

SELECT SUM(ProductPrice)
FROM Products
WHERE VendorId = 1001;

Résultat :

78.72

Dans ce cas, 78,72 est la somme de tous les produits proposés par le fournisseur spécifié.

Le DISTINCT Mot clé

Vous pouvez utiliser le DISTINCT mot clé avec SUM() 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 SUM(DISTINCT ProductPrice)
FROM Products;

Résultat :

363.71

Notre tableau contient deux articles avec le même prix (le tournevis pour gaucher et le tournevis pour droitier sont tous deux au prix de 25,99). Le DISTINCT mot-clé fait que ces deux valeurs sont traitées comme une seule.

Fonctions de la fenêtre

Nous pouvons utiliser un OVER clause avec la SUM() fonction pour créer une fonction de fenêtre. Voir SQL SUM() pour les débutants pour un exemple.