我想我有一个简单的问题,但我用谷歌搜索并找不到解决方案。我有一个具有 MeasureA、MeasureB 和 MeasureC 的立方体。并非所有三个度量都有每条记录的值,有时它们可以为空,这取决于它是否适用。
现在对于我的总数,我需要平均,但平均值不能考虑空值。任何帮助都感激不尽。当我查看度量时,空值显示为零。
我想我有一个简单的问题,但我用谷歌搜索并找不到解决方案。我有一个具有 MeasureA、MeasureB 和 MeasureC 的立方体。并非所有三个度量都有每条记录的值,有时它们可以为空,这取决于它是否适用。
现在对于我的总数,我需要平均,但平均值不能考虑空值。任何帮助都感激不尽。当我查看度量时,空值显示为零。
为什么不使用 AVG() 函数计算平均值?
例如:
([MEASURES].[MEASURES] + [MEASURES].[MEASURES] + [MEASURES].[MEASUREC]) / 3
当然,这仅在该平均值仅包含 3 个度量时才有效。如果您需要对一组进行评估,我只会真正使用 AVG() 函数:http:
//msdn.microsoft.com/en-us/library/ms146067.aspx
默认情况下,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
您可以使用 NonEmpty() MDX 函数来包装您正在平均的集合吗?
对于每个度量,在其属性中转到源列设置并选择 NullProcessing="Preserve",然后度量将返回 NULL 而不是 0