Mysql AVG函数 与手动sum 再除 count求出的平均值不一致问题
使用下列语句:
SELECT
IF (
AVG(`VALUE`) IS NULL,
0,
AVG(`VALUE`)
) AS avgValue
FROM
t_src_rtdb
WHERE
`NAME` = 'CZ3-A999'
AND (
SECONDS > 1351632073
AND SECONDS < 1351718473
)
AND `value` >= 0.50000000
AND `value` <= 5.00000000
得到的平均值为:2.8075127382092875
使用下面的语句:
SELECT count(*) from t_src_rtdb where `NAME` = 'CZ3-A999'' AND (SECONDS >= 1351632073 AND SECONDS < 1351718473) AND `VALUE` >=0.50000000 and `VALUE` <= 5.00000000;
SELECT sum(`VALUE`) from t_src_rtdb where `NAME` = 'CZ3-A999'' AND (SECONDS >= 1351632073 AND SECONDS < 1351718473) AND `VALUE` >=0.50000000 and `VALUE` <= 5.00000000;
得到数据分别为:
1440,4042.703461289406 两数相除等于:2.80743296 小数点4位以后的数字完全不一样了。
这是为什么呢?哪个算法是最准确的?