SQL SUM()

Dans le langage SQL, la fonction d’agrégation SUM() permet de calculer la somme totale d’une colonne contenant des valeurs numériques. Cette fonction ne fonction que sur des colonnes de types numériques (INT, FLOAT …) et n’additionne pas les valeurs NULL.

Syntaxe

La syntaxe pour utiliser cette fonction SQL peut être similaire à celle-ci:

SELECT SUM(nom_colonne)
FROM table

Cette requête SQL permet de calculer la somme des valeurs contenu dans la colonne « nom_colonne ».

A savoir : Il est possible de filtrer les enregistrements avec la commande WHERE pour ne calculer la somme que des éléments souhaités.

Exemple

Imaginons un système qui gère des factures et enregistre chaque achat dans une base de données. Ce système utilise une table « facture » contenant une ligne pour chaque produit. La table ressemble à l’exemple ci-dessous :

Table facture :

idfacture_idproduitprix
11calculatrice17
21agrafeuse4
31ciseaux3
41agenda15
52calculatrice17
62agenda15

Somme avec WHERE

Pour calculer le montant de la facture n°1 il est possible d’utiliser la requête SQL suivante:

SELECT SUM(prix) AS prix_total
FROM facture
WHERE facture_id = 1

Résultat :

prix_total
39

Ce résultat démontre bien que tous les achats de la facture n°1 représente un montant de 39€ (somme de 17€ + 4€ + 3€ + 15€).

Somme avec GROUP BY

Pour calculer la somme de chaque facture, il est possible de grouper les lignes en se basant sur la colonne « facture_id ». Un tel résultat peut être obtenu en utilisant la requête suivante:

SELECT facture_id, SUM(prix) AS prix_total
FROM facture
GROUP BY facture_id

Résultat :

facture_idprix_total
139
232

Ce résultat montre bien qu’il est possible de déterminer le prix total de chaque facture en utilisant la fonction d’agration SUM().

Partager