X是具有数值和空值混合的列。
我不明白为什么将空值视为0会改变AVG值的结果。
不应该是这样,
(2 + null + 2) / 3 = 2 -- with null value
(2 + 0 + 2) / 3 = 2 -- no null value
答案 0 :(得分:5)
如果您有null
值,则不会将其考虑在内,因此元素数量(您的n
)不会增加,而0
会被视为有效值。
例如,如果您有:1,1,6,7,null,3,2
,则总计20
除以 6
(即3.33
)。但是,如果您将null
替换为0
,则会20
/
7
(即2.86
)。
SQLFiddle在MySQL服务器上演示了这种行为。
参考:请查看表格下方的documentation:
This section describes group (aggregate) functions that operate on sets of values. Unless otherwise stated, group functions ignore NULL values.