AVG中的Sql - 浮点数问题

Net*_*ide 29 sql average

SELECT     AVG(variable) AS Expr1, SUM(variable) AS Expr2
FROM       ......
Run Code Online (Sandbox Code Playgroud)

AVG的结果是2,但事实并非如此,必须是2.95.有什么问题,有什么想法吗?

小智 49

尝试

Select
    AVG(Cast(variable as Float)),
    SUM(variable)
From
    Table
Run Code Online (Sandbox Code Playgroud)

  • @PouyaBCD在不知道确切的用例的情况下,您不能只建议使用小数而不是浮点数。存在完全有效的浮点数/双精度用例,其中使用小数效果不佳(例如,当您需要大范围时,例如从 1e-18 到 1e+18 的数字)。 (2认同)