我们假设我们有运营商日志事实表(约5000万行),其中包含以下字段:
三个维度:事件(~20行),客户端(~500 000行),日期(~2000行)。
我想在某一天看到每位客户的最后一次行动。因此,在报告中,我想选择某一天并获得结果。
报告如下:
目前的解决方法:完全是DWH,我每天为每个客户计算最后一个事件,而且它很大(500 000 * 2000 = 1 000 000 000行)。
MDX workarouds :我尝试重用Chris Webb's idea,但是对于每个客户端重新聚合仍然很慢,但到目前为止它是最快的MDX解决方法。
我想还有一些其他的解决方法可以在没有巨大的表填充的情况下动态获取结果。
MDX限制:
With
[Measures].[CustomersWithSalesTillToday] as
SUM(
VisualTotals([Date].[Date].[All] + NULL:[Date].[Date].CURRENTMEMBER),
NULL
)
+
SUM(
[Customer].[Customer].[Customer].Members,
IIF(
([Date].[Date].[All],[Measures].[Internet Sales Amount]) > 0,
1,
NULL
)
)
DWH限制:
实际上我可能会分享这方面的其他一些经验,但我希望你有我的想法。