如何在SQL SERVER中将AVG()函数转换为十进制

时间:2017-03-11 22:09:06

标签: sql sql-server sql-server-2016

帮助! 我有一个看起来像下面的表。

SELECT *
FROM tblshipline 
WHERE MethodShipped = 'FEDEX'

然后我得到

Qtyshipped
2
3
15
3
10
9
10

现在的问题是计算qtyshipped的平均值并将其四舍五入为2位十进制数。

我的代码是

SELECT CONVERT(decimal(8,6), ROUND(AVG(Qtyshipped),2))  
FROM TblShipLine
WHERE MethodShipped= 'FEDEX'

答案应为7.430000, 但它总是返回7.000000。我感谢任何建议,谢谢!

1 个答案:

答案 0 :(得分:6)

这里我们取你的INT值并加上0.0,这是一个快速转换为float。然后我们应用round()和convert()

Declare @YourTable table (Qtyshipped int)
Insert into @YourTable values
(2),
(3),
(15),
(3),
(10),
(9),
(10)

Select convert(decimal(8,6),round(Avg(Qtyshipped+0.0),2))
 From  @YourTable

返回

7.430000