SQL中的AVG函数 - 浮点数问题

38
SELECT     AVG(variable) AS Expr1, SUM(variable) AS Expr2
FROM       ......

AVG的结果是2,但这不是真实的结果,应该是2.95。有什么问题吗?有什么想法吗?


变量的类型是什么?我猜它是整数。对吗? - luc
1个回答

66

尝试

Select
    AVG(Cast(variable as Float)),
    SUM(variable)
From
    Table

我建议使用十进制(decimal)而不是浮点数(float)。请参考以下链接: https://dev59.com/AnNA5IYBdhLWcg3wL62x - Pouya BCD
2
@PouyaBCD 在不知道具体用例的情况下,你不能仅仅建议使用小数而不是浮点数。存在完全有效的浮点数/双精度浮点数用例,其中使用小数将无法很好地工作(例如当您需要巨大范围时,例如从1e-18到1e+18的数字)。 - jlh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接