Dans MariaDB, 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)
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 | 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 somme de tous les prix.
SELECT SUM(ProductPrice)
FROM Products;
Résultat :
423.19
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.
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, le résultat 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 :
397.20
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.