AVG() 在 SQL Server 中不准确

pri*_*iya 0 sql sql-server average

我正在尝试使用 SQL Server Management Studio 2008 计算Avg()具有 where 条件的列。当我在 SQL 查询中尝试时,AVG(column-name)它给我一个四舍五入的值,而不是十进制值。

当我将数据集复制到 MS Excel 中时,我在 SQL 中得到了小数点后 4 位的准确值(例如:10.74),但我只得到了 10。感谢任何帮助。

我的查询:

SELECT Item, AVG(POOrdrQty) 
FROM [tableWR] 
where Item ='737' AND POOrdrQty <((select AVG([POOrdrQty]) FROM [tableWR]) * 2) 
group by Item
Run Code Online (Sandbox Code Playgroud)

Guf*_*ffa 6

聚合的结果类型avg与用作参数的值的类型相同。如果字段是int,结果将四舍五入以适合类型。

转换您用作参数的值:avg(cast(column-name as float))