CodeGym /Cours /SQL SELF /Additionner des données avec SUM() — syntaxe et exemples

Additionner des données avec SUM() — syntaxe et exemples

SQL SELF
Niveau 7, Leçon 2
Disponible

Imagine... T’as une liste de courses de supermarché longue comme le bras. Tu veux savoir combien t’as claqué au final. Tu vas pas tout additionner à la main, non ? Ben les caissiers, eux, ils ont tout dans leur base de données. Du coup, tu reçois ton ticket avec le bon total. Et sûrement, quelque part dans leur appli, c’est notre héroïne du jour qui bosse pour eux — la fonction SUM() ! C’est une fonction d’agrégation qui permet d’additionner les valeurs d’une colonne de type numérique.

Syntaxe de SUM()

La fonction SUM() est aussi simple que son nom, mais on va quand même tout décortiquer :

SELECT SUM(colonne)
FROM table;

La fonction prend toutes les valeurs de la colonne indiquée et les additionne. Mais soyons clairs : pas de magie, tu ne pourras pas additionner du texte ou des dates ici ! Juste des nombres.

Exemples d’utilisation de SUM()

On commence avec un exemple simple. On va bosser avec la table salaries, qui stocke les salaires des employés :

employee_id salary
1 50000
2 60000
3 55000
4 75000

Exemple 1 : Additionner tous les salaires

Tu veux savoir la masse salariale totale de la boîte. Voilà comment faire :

SELECT SUM(salary) AS total_salary
FROM salaries;

Résultat :

total_salary
240000

Qu’est-ce qui s’est passé ici ? PostgreSQL a additionné toutes les valeurs de la colonne salary (50000 + 60000 + 55000 + 75000) et a renvoyé le résultat dans une nouvelle colonne appelée total_salary.

Exemple 2 : Additionner avec une condition

Imaginons que tu veux connaître le total des salaires uniquement pour les employés qui gagnent plus de 55 000. On ressort notre opérateur préféré WHERE :

SELECT SUM(salary) AS high_salary_total
FROM salaries
WHERE salary > 55000;

Résultat :

high_salary_total
135000

Qu’est-ce qui s’est passé là ? D’abord, PostgreSQL a appliqué le filtre WHERE salary > 55000, donc il ne garde que les lignes avec 60000 et 75000. Ensuite, il additionne ces deux salaires (60000 + 75000).

3. Particularités de SUM()

Comment NULL influence SUM() ? Comme on l’a déjà vu, NULL c’est “rien”, et SUM() ne le prend pas en compte dans les calculs. Regarde cette table :

employee_id salary
1 50000
2 60000
3 NULL
4 75000

Si on veut connaître la masse salariale totale :

SELECT SUM(salary) AS total_salary
FROM salaries;

Résultat :

total_salary
185000

Pourquoi “185000” et pas “NULL” ? PostgreSQL ignore tout simplement NULL quand il fait la somme.

Exemples de requêtes avancées avec SUM()

Exemple 1 : Addition et filtrage dans une seule requête

Imagine une table sales qui stocke les données de ventes. Voilà sa structure :

product_id amount
1 150
2 200
3 NULL
1 100

Tu veux savoir le total des ventes amount juste pour le premier produit product_id = 1 :

SELECT SUM(amount) AS total_sales
FROM sales
WHERE product_id = 1;

Résultat :

total_sales
150

Exemple 2 : Somme et calculs supplémentaires

On reprend la table salaries. Tu veux savoir de combien la masse salariale dépasse 200 000 :

SELECT SUM(salary) - 200000 AS surplus
FROM salaries;

Résultat :

surplus
40000

Erreurs fréquentes avec SUM()

Utiliser SUM() sur des données non numériques : si tu essayes d’additionner, par exemple, des valeurs textuelles, tu vas avoir une erreur. Fais gaffe et vérifie bien le type de données de ta colonne.

Ignorer NULL : souvent, les débutants oublient que NULL n’est pas pris en compte dans les calculs. Ça peut donner des résultats chelous.

2
Mission
SQL SELF, niveau 7, leçon 2
Bloqué
Additionner tous les éléments d'une colonne
Additionner tous les éléments d'une colonne
2
Mission
SQL SELF, niveau 7, leçon 2
Bloqué
Somme conditionnelle
Somme conditionnelle
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION