SQL AVG返回一个int

时间:2012-06-19 17:26:36

标签: sql casting floating-point average

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

select ..., AVG(e.employee_level)avg_level

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

3 个答案:

答案 0 :(得分:40)

尝试这样做:

AVG(Cast(e.employee_level as Float)) as avg_level

此外,我找到了this话题,你可以找到另一种方法,但我没有使用它,也不知道是否有效。

答案 1 :(得分:1)

投射更确定,但...AVG(1.0 * e.employee_level)...可能也会这样做,并且可以更清晰。

答案 2 :(得分:0)

AVG的返回类型取决于传递给函数的表达式的求值类型。

enter image description here

例如,如果您希望结果为float,则需要确保列或表达式类型为float