代码:
SELECT SalesOrderID, ORDERQTY AS 数量
FROM Sales.SalesOrderDetail
Where SalesOrderID IN(43660,43670,43672)
结果:
SalesOrderID 数量
43660 1
43660 1
43670 1
43670 2
43670 2
43670 1
43672 6
43672 2
43672 1
代码:
SELECT SalesOrderID, AVG(ORDERQTY) AS 数量
FROM Sales.SalesOrderDetail
Where SalesOrderID IN(43660,43670,43672)
group by SalesOrderID
结果:
SalesOrderID 数量
43660 1
43670 1
43672 3
根据上表的信息来看,我们可以发现对于43670订单计算貌似不对,订单数量为4,订单量为6。按照正常的计算方法,应该为1.5,为什么计算出来的结果为1呢,这个我们就要从ORDERQTY字段的数据类型来进行检查,发现该字段类型为Smallint,AVG函数计算之后,采取直接截断,那么这就能够解释为什么计算出来的结果为1了。