Ssas &引用;平均;稀疏填充百分比值的聚合

Ssas &引用;平均;稀疏填充百分比值的聚合,ssas,aggregate-functions,cube,dimensional-modeling,Ssas,Aggregate Functions,Cube,Dimensional Modeling,我有目前已完全填充的成本中心分配数据,每天一条记录,每个记录有一个成本中心维度键。多维数据集具有人头计数度量(数据设置为“1”),聚合函数设置为“LastChild”。这意味着在任何给定的时间段内,人员盘点报告在成本中心只对一个人进行一次盘点 引入部分分配-一个新的度量将有分配的百分比值,允许多个并行成本中心,其中分配的总和应达到100%(以“天”为粒度级别)。我试图弄清楚如何在其他时间段配置聚合。我认为“平均”应该很好,也就是说,一个人在一半时间段内以50%的比例分配到成本中心,在该时间段内将

我有目前已完全填充的成本中心分配数据,每天一条记录,每个记录有一个成本中心维度键。多维数据集具有人头计数度量(数据设置为“1”),聚合函数设置为“LastChild”。这意味着在任何给定的时间段内,人员盘点报告在成本中心只对一个人进行一次盘点

引入部分分配-一个新的度量将有分配的百分比值,允许多个并行成本中心,其中分配的总和应达到100%(以“天”为粒度级别)。我试图弄清楚如何在其他时间段配置聚合。我认为“平均”应该很好,也就是说,一个人在一半时间段内以50%的比例分配到成本中心,在该时间段内将以25%的比例报告。 我看到的问题是,在成本中心的分配为0%的情况下,我的事实在几天内没有填充。举例说明:

Employee1 CostCenterA 1/1/2013 50%
Employee1 CostCenterB 1/1/2013 50%
Employee1 CostCenterA 1/2/2013 100%
Employee1 CostCenterA 1/3/2013 100%
... etc with 100% in CostCenterA for all days 
上述月度报告数据显示,成本中心B的分配比例为50%,即使该人员仅分配了一天,每月的平均百分比应为1.6%


我想我可以在数据中生成0%的分配,但我的事实表会因此爆炸,因此我更愿意改变“平均”聚合如何处理填充稀疏的事实中的百分比值,即平均值应根据报告期内的粒度单位数进行计算(当月天数,在本例中为0.5/31),而不是事实表中的行数(0.5/1)。这可以在SSAS中实现吗?

如果平均分配的度量值与我的事实的“稀疏性”成正比,即一个期间的天数与实际事实行的比率,则可以按照以下方式进行更正:

adjusted average allocation = 
  (calculated average allocation) * (fact count)/(number of days in period)
我创建了两个新的隐藏度量值,一个为事实计数命名为[Fact Count](使用AggregateFunction“Count”的度量值),另一个为天数命名为[Days In Period Count]的计算度量值,使用表达式

COUNT(Descendants([Date].[Calendar].CurrentMember,5),INCLUDEEMPTY)
[Calendar]是my Date维度中层次结构的名称

最后,我添加了一个计算过的度量,它实现了纠正公式:

[Measures].[Allocative Head Count]/
(
    [Measures].[Days In Period Count]/[Measures].[Fact Count]
)
并将其命名为[Adjusted Average Allocation]

当涉及过滤器时,[Days In Period Count]btw的公式不适用于行总数。我为此打开了