SQL Server 2008 Analysis Services的空值总和和平均值

时间:2010-05-19 13:45:02

标签: sql sql-server-2008 cube

我认为我有一个简单的问题,但我用google搜索并找不到解决方案。我有一个包含MeasureA,MeasureB和MeasureC的立方体。并非所有三个度量都具有每个记录的值,有时它们可​​以为空,这取决于它是否适用。

现在我的总数,我需要平均值,但平均值不能考虑空值。任何帮助都感激不尽。当我查看度量时,空值显示为零。

4 个答案:

答案 0 :(得分:0)

为什么不在不使用AVG()函数的情况下计算平均值?

例如:
([测量]。[测量] + [测量]。[测量] + [测量]。[测量])/ 3

当然,只有这个平均值只包含3个指标才有效。如果你需要评估一组,我只会真正使用AVG()函数:
 http://msdn.microsoft.com/en-us/library/ms146067.aspx

答案 1 :(得分:0)

默认情况下,SQL Server会忽略空值 - 因此会收到消息 - Warning: Null value is eliminated by an aggregate or other SET operation.

示例:

create table #test (id int null)
insert #test values (1)
insert #test values (1)
insert #test values (null)
insert #test values (1)

select avg(id), sum(id), count(id) from #test

答案 2 :(得分:0)

您可以使用NonEmpty()MDX函数来包装您要平均的集合吗?

http://msdn.microsoft.com/en-us/library/ms145988.aspx

答案 3 :(得分:0)

对于每个度量,在其属性中转到源列设置并选择NullProcessing =“Preserve”,然后度量将返回NULL而不是0