/ / mysql fonction avg avec fonction ROUND - mysql

fonction mysql avg avec la fonction ROUND - mysql

Dans la requête mysql j'ai utilisé

avg(column_name)

quelle valeur de retour 12.50 mais si je fais rond à avg fonction comme

ROUND(avg(column_name))

alors il renvoie la valeur 12 mais il faut être 13. Je ne sais pas pourquoi il revient 12 au lieu de 13

Si je fais ROUND(12.50) il me renvoie la valeur "13" et avg(column_name) qui est 12.50. Quand je fais ROUND(avg(column_name)) renvoie la valeur "12". Je pense que dans les deux cas, la sortie doit être "13".

Réponses:

2 pour la réponse № 1

http://dev.mysql.com/doc/refman/5.0/en/precision-math-rounding.html:

Depuis MySQL 5.0.3, ROUND () utilise les règles suivantes en fonction de la type du premier argument:

Pour les nombres de valeur exacte, ROUND () utilise le “round”demi-tour »ou« rond règle «vers le plus proche»: une valeur avec une fraction de 0,5 ou plus est arrondi au nombre entier supérieur s'il est positif ou au nombre inférieur entier si négatif. (En d'autres termes, il est arrondi à zéro.) A la valeur avec une partie décimale inférieure à .5 est arrondie à la suivante entier si positif ou jusqu'au prochain entier si négatif.

Pour les nombres de valeur approximative, le résultat dépendsur la bibliothèque C. Sur beaucoup de systèmes, cela signifie que ROUND () utilise le "arrondi au plus proche égal" règle: une valeur avec une partie décimale est arrondie au plus proche pair entier.

L’exemple suivant montre comment les arrondis diffèrent pour exact et valeurs approximatives:

mysql> SELECT ROUND(2.5), ROUND(25E-1);
+------------+--------------+
| ROUND(2.5) | ROUND(25E-1) |
+------------+--------------+
| 3          |            2 |
+------------+--------------+

0 pour la réponse № 2

Je ne sais pas si c'est votre cas, mais voici ce qui est écrit dans Documentation MySQL

Pour les nombres de valeur approximative, le résultat dépendsur la bibliothèque C. Sur beaucoup de systèmes, cela signifie que ROUND () utilise le "arrondi au plus proche égal" règle: une valeur avec une partie décimale est arrondie au plus proche pair entier.


0 pour la réponse № 3

essaye ça:

FLOOR(avg(column_name) + 0.5)