SQL Function AVG()可以计算一列中所有数值的平均值,忽略所有NULL值。如果需要进行加权平均,则可以使用SUM(value * weight)/SUM(weight)并带有Group By子句。
如果我想要进行后者,但是我的一些值是NULL,那么我该如何告诉SQL在SUM(weight)函数中忽略具有NULL值观测值的权重?
我的另一个问题是,我一次要对90个不同的列取平均值,因此我想避免为此计算90个新的权重变量。
请让我知道是否已经清楚明白了。
我正在使用SQL Server 2005。
如果我想要进行后者,但是我的一些值是NULL,那么我该如何告诉SQL在SUM(weight)函数中忽略具有NULL值观测值的权重?
我的另一个问题是,我一次要对90个不同的列取平均值,因此我想避免为此计算90个新的权重变量。
请让我知道是否已经清楚明白了。
我正在使用SQL Server 2005。
IS NULL
和IS NOT NULL
之外的任何操作中,NULL都会返回NULL。即使是除以0也是如此。但是,我包括第二个版本是因为有人可能会考虑到这一点。如果没有匹配项,它将更清楚地返回NULL。 - Gordon Linoff