SUM |
Somme |
---|---|
Oracle Database SQL |
Syntaxe
SUM(argument) |
Paramètres
Nom | Description |
---|---|
argument | Ce paramètre permet d'indiquer l'expression ou la colonne où il effectue la somme. |
Description
Cette fonction retourne la somme d'une liste d'argument.
Algorithme
MODULE SUM(valeurs) total ← 0 BOUCLE POUR CHAQUE valeur dans valeurs FAIRE SI la valeur n'est pas NULL ALORS total ← total + valeur FIN SI FIN BOUCLE POUR CHAQUE SI aucune valeur valide n'est trouvée ALORS RETOURNE NULL SINON RETOURNE total FIN SI |
Remarques
- Fonction d'agrégation : La fonction SUM est une fonction d'agrégation permettant de calculer la somme des valeurs d'une colonne ou d'une expression numérique. Elle est souvent utilisée dans les requêtes pour analyser les données sur des ensembles de lignes.
- Gestion des valeurs NULL : Lorsqu'elle traite des colonnes contenant des valeurs NULL, la fonction SUM ignore automatiquement ces valeurs. Cela évite des calculs incorrects ou des résultats erronés liés aux données manquantes.
- Utilisation avec GROUP BY : En combinaison avec une clause GROUP BY, SUM calcule la somme pour chaque groupe distinct. Par exemple, elle peut être utilisée pour obtenir les ventes totales par région ou par produit.
- Application sur des expressions : La fonction SUM peut être utilisée sur des expressions mathématiques ou des colonnes dérivées, comme SUM(prix * quantité), pour effectuer des calculs plus complexes sur les données.
- Résultat pour des ensembles vides : Si la fonction SUM est utilisée sur un ensemble de lignes ne contenant aucune valeur (par exemple, avec un filtre excluant toutes les lignes), elle renvoie NULL. Cela peut être géré avec NVL ou COALESCE pour définir une valeur par défaut.
- Performance et optimisation : Les performances de SUM dépendent du volume de données et de la présence d'index. Les bases de données Oracle peuvent optimiser les calculs avec des index bitmap ou des techniques de parallélisme pour les grandes tables.
- SUM en tant que fonction analytique : En tant que fonction analytique (ou fonction fenêtre), SUM peut être utilisée avec la clause OVER pour calculer des sommes cumulatives, des sommes mobiles, ou des sommes partielles dans une partition de données.
- Compatibilité des types : La fonction SUM fonctionne uniquement sur des colonnes numériques ou des expressions retournant des types numériques. Si une colonne est de type incompatible, Oracle générera une erreur, nécessitant une conversion explicite des données.
Exemple
Prenons pour base la table «listvalue» avec le contenu suivant :
id | value | name |
1 | 300 | Jean |
2 | 6000 | Philippe |
3 | 5000 | Samuel |
4 | 4000 | Gabriel |
5 | 200 | Mathieu |
6 | 6000 | Paul |
Si vous voulez retourner la somme des valeurs de cette table vous entrez donc les instructions suivantes :
Et les informations vous seront retournés sous la forme suivante :
SUM(value) |
21500 |
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015