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

时间:2013-02-09 06:00:35

标签: ssas mdx

我在fact table中有列。某行中的列的值为'Null'。我根据此列进行了衡量,aggregate function设置为DistinctCount

此度量计数null也是如此。 但我不想计算null值我应该做什么?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

一种流行的解决方案是从过滤掉空值的表的视图开始计算。这有效,但我敢打赌它需要另一次扫描事实表。

另一种解决方案就像用火扑灭 添加一个计算列,如果它为null,则为0;如果不为,则为1:

CASE WHEN _DollarsLY IS NULL THEN 0 ELSE 1 END AS _DistinctCountHackLY

然后你可以在立方体计算中做这样的事情:

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