SQL AVG返回一个int

Cod*_*lus 26 sql floating-point casting average

在我的一个查询中,似乎该AVG函数返回一个int.

select ..., AVG(e.employee_level)avg_level
Run Code Online (Sandbox Code Playgroud)

如何让它返回浮点值?我尝试了它,但我的所有行avg_level仍然是整数.

Sim*_*iak 43

尝试这样做:

AVG(Cast(e.employee_level as Float)) as avg_level
Run Code Online (Sandbox Code Playgroud)

此外,我发现这个话题,你可以找到另一种方法,但我没有使用它,也不知道确切是否有效.

  • @CodeKingPlusPlus - 我猜你试过`CAST(AVG(field)AS FLOAT)`` `AVG(field)`仍然会返回相同的答案,这是一个INT,将它投射到FLOAT时无法帮助你.然而,`AVG(CAST(field AS FLOAT))`非常不同,可能就是你想要的.*[这个答案+ 1]* (3认同)