在SSAS中,如何删除不同计数度量中的空值

在SSAS中,如何删除不同计数度量中的空值,ssas,mdx,Ssas,Mdx,我在事实表中有一个列。某些行中的列有'Null'值。我有一个基于此列的度量值,聚合函数设置为DistinctCount 此度量值也包含计数null值。 但是我不想计算nullvalue我应该怎么做?最有效的方法是在数据源视图中过滤掉null值(例如使用命名查询)。这不会对性能产生太大影响,因为不同的计数度量值是在单独的度量值组中计算的。最有效的方法是在数据源视图中过滤掉空值(例如使用命名查询)。这不会对性能产生太大影响,因为一个不同的计数度量值是在一个单独的度量值组中计算的。一个常用的解决方案是

我在
事实表中有一个列
。某些行中的列有
'Null'
值。我有一个基于此列的度量值,
聚合函数
设置为
DistinctCount

此度量值也包含计数
null
值。
但是我不想计算
null
value我应该怎么做?

最有效的方法是在数据源视图中过滤掉null值(例如使用命名查询)。这不会对性能产生太大影响,因为不同的计数度量值是在单独的度量值组中计算的。

最有效的方法是在数据源视图中过滤掉空值(例如使用命名查询)。这不会对性能产生太大影响,因为一个不同的计数度量值是在一个单独的度量值组中计算的。

一个常用的解决方案是从过滤掉空值的表的视图中进行计数。这是可行的,但我敢打赌它需要对事实表进行另一次扫描

另一种解决方法就像用火救火。
添加一个计算列,如果该列为空,则为0;如果不是空,则为1:

CASE WHEN _DollarsLY IS NULL THEN 0 ELSE 1 END AS _DistinctCountHackLY
然后,您可以在立方体计算中执行以下操作:

iif(_DistinctCountHackLY=2 or _DollarsLY=null,_DistinctUPCLY-1,_DistinctUPCLY)

一种流行的解决方案是从过滤掉空值的表的视图中进行计数。这是可行的,但我敢打赌它需要对事实表进行另一次扫描

另一种解决方法就像用火救火。
添加一个计算列,如果该列为空,则为0;如果不是空,则为1:

CASE WHEN _DollarsLY IS NULL THEN 0 ELSE 1 END AS _DistinctCountHackLY
然后,您可以在立方体计算中执行以下操作:

iif(_DistinctCountHackLY=2 or _DollarsLY=null,_DistinctUPCLY-1,_DistinctUPCLY)

看起来这是唯一的方式-令人惊讶的是微软忽略了这个问题看起来这是唯一的方式-令人惊讶的是微软忽略了这个问题