我正在使用Analysis Services 2000为Web应用程序开发一个多维数据集,用户可以在该应用程序中注册和注销该站点。因此,“用户”表有以下三个字段:
我需要的信息是通过时间维度了解一次有多少用户处于活动状态。类似的东西:
年月日活跃用户
2009年1月1日10日(今天10次激活)
2009年1月2日12日(今天3次激活, 1次未注册)
2009年1月10日17日(5日激活)
即使我在2009年2月查询,我也需要知道1月1日有10个活跃用户(取消订阅第2个用户的用户必须计算在内)。
我开发了一个多维数据集,其中事实表是用户表,并为两个日期字段(fechaAlta和fechaBaja)创建两个维度。我也创建了这个计算字段:
按月活动:
计算子多维数据集:{[Measures]。[Altas]},[Fecha Alta]。[Mes] .MEMBERS
计算公式:sum({Descendants([Fecha Alta] .currentmember,[Fecha Alta]。[Día])},[Measures]。[Activo])
活跃于白天:
计算子多维数据集:{[Measures]。[Inscritos]},[Fecha Alta] .MEMBERS
计算公式:sum({Periodstodate([Fecha Alta]。[(Todos)])},[Measures]。[Activo])
我不知道如何仅在fechaBaja指示的日期打折未注册的用户。
感谢。
答案 0 :(得分:1)
这是一个经典的缓慢变化的维度问题。您所描述的是类型2缓慢变化的维度,请参阅here
您需要确保您的用户维度具有代理键。然后,每次用户更改状态时,在用户表中创建一条新记录,然后使用生效日期来控制要插入事实表中的代理键。这样您就可以在任何时间点报告用户的有效状态。
答案 1 :(得分:0)
我认为您需要一个“用户状态”维度,然后您可以针对时间显示此值,其中度量是用户数量。