1

X 是混合了数值和空值的列。

我不明白为什么将空值视为 0 会更改 AVG 值的结果。

不应该是这样吗

(2 + null + 2) / 3 = 2 -- with null value

(2 + 0 + 2) / 3 = 2     -- no null value
4

1 回答 1

5

如果您有null值,则不会将其考虑在内,因此元素的数量(您的n)不会增加,而0被视为有效值。

例如,如果您有:1,1,6,7,null,3,2它将被总数20除以6(ie 3.33)。但是,如果你用它替换null0就会变成20 /7(即2.86)。

SQLFiddle在 MySQL 服务器上演示了这种行为。

参考:查看表格下方的文档:

This section describes group (aggregate) functions that operate on sets of values. Unless otherwise stated, group functions ignore NULL values.
于 2012-08-25T03:04:37.410 回答