我有列fact table
。某行中的列有值。我'Null'
有基于此列的度量,aggregate function
设置为DistinctCount
这个度null
量值也很重要。但我不想计算null
价值我该怎么办?
最有效的方法是在数据源视图中过滤掉 NULL 值(例如使用命名查询)。这不会对性能产生太大影响,因为无论如何都会在单独的度量值组中计算不同的计数度量值。
一种流行的有效解决方案是从过滤掉空值的表视图中计数。这行得通,但我敢打赌,它需要对事实表进行另一次扫描。
另一种解决方案就像以火攻毒。
添加一个计算列,如果它为 null,则为 0,如果不是,则为 1:
CASE WHEN _DollarsLY IS NULL THEN 0 ELSE 1 END AS _DistinctCountHackLY
然后你可以在立方体计算中做这样的事情:
iif(_DistinctCountHackLY=2 or _DollarsLY=null,_DistinctUPCLY-1,_DistinctUPCLY)