Dans le langage SQL la fonction ROUND() permet d’arrondir un résultat numérique. Cette fonction permet soit d’arrondir sans utiliser de décimal pour retourner un nombre entier (c’est-à-dire : aucun chiffre après la virgule), ou de choisir le nombre de chiffre après la virgule.
Syntaxe
Cette fonction mathématique peut être utilisée de la façon suivante:
SELECT ROUND(nom_colonne) FROM `table`
Dans cet exemple la colonne “nom_colonne” contient des données numériques (exemple : FLOAT, INT, NUMERIC …) et retournera uniquement des entiers.
Pour obtenir le résultat avec 2 chiffres de décimal il convient de spécifier le nombre de décimal souhaité comme 2ème argument.
SELECT ROUND(nom_colonne, 2) FROM `table`
Exemple
Imaginons une table qui contient des noms d’utilisateurs et le résultat d’un algorithme quelconque. Le résultat de l’algorithme pourrait être un indice utilisé par un moteur de recherche pour trouver l’utilisateur le plus pertinent pour une recherche. Ce résultat est un chiffre à virgule.
Table “resultat” :
id | utilisateur | algorithme |
---|---|---|
1 | Thomas | 78.4216857 |
2 | Marie | 69.1294526 |
3 | Sophie | 63.5236241 |
4 | John | 24.6578954 |
Arrondir au chiffre entier
Il est possible d’utiliser la fonction ROUNT() pour arrondir ce résultat en un entier.
SELECT id, utilisateur, algorithme, ROUND(algorithme) FROM `resultat`
Résultat :
id | utilisateur | algorithme | ROUND(algorithme) |
---|---|---|---|
1 | Thomas | 78.4216857 | 78 |
2 | Marie | 69.1294526 | 69 |
3 | Sophie | 63.5236241 | 64 |
4 | John | 24.6578954 | 25 |
Ce résultat démontre que la fonction a supprimée les chiffres après la virgule. Il est intéressant de noter que le résultat est arrondis à l’entier le plus proche (arrondit au chiffre entier supérieur si les décimales sont supérieur à 0.5).
Arrondir à 2 chiffres après la virgules
Il est possible d’arrondir aux 2 chiffres après la virgule en utilisant la requête SQL suivante:
SELECT id, utilisateur, algorithme, ROUND(algorithme, 2) FROM `resultat`
Résultat :
id | utilisateur | algorithme | ROUND(algorithme, 2) |
---|---|---|---|
1 | Thomas | 78.4216857 | 78.42 |
2 | Marie | 69.1294526 | 69.13 |
3 | Sophie | 63.5236241 | 63.52 |
4 | John | 24.6578954 | 24.66 |
Arrondir le résultat à la dizaine
Il est possible d’utiliser une valeur négative dans le second argument pour obtenir une valeur arrondit à la dizaine, centaine ou plus selon la valeur indiquée. Cela peut être effectué en utilisant la requête suivante:
SELECT id, utilisateur, algorithme, ROUND(algorithme, -1) FROM `resultat`
Résultat :
id | utilisateur | algorithme | ROUND(algorithme, -1) |
---|---|---|---|
1 | Thomas | 78.4216857 | 80 |
2 | Marie | 69.1294526 | 70 |
3 | Sophie | 63.5236241 | 60 |
4 | John | 24.6578954 | 20 |