SSAS中的滚动时间聚合

时间:2015-08-04 19:12:08

标签: sql ssas mdx olap

因此,我一直在寻找一种计算多维数据集中滚动季度的好方法,并且进展甚微。

我们有一个视图v_FactScores,我们按季度ID计算平均值。我们所做的SQL等同于:

SELECT AVG([Score]) Score
FROM v_FactScores fs
INNER JOIN v_DimUser du ON fs.UserID = du.UserID AND fs.Country = du.Country AND fs.quarter1 = du.quarter1
WHERE fs.quarter1 IN (7,8)

这将为领先的第8季提供滚动平均值。该系列的下一个要点是:

SELECT AVG([Score]) Score
FROM v_FactScores fs
INNER JOIN v_DimUser du ON fs.UserID = du.UserID AND fs.Country = du.Country AND fs.quarter1 = du.quarter1
WHERE fs.quarter1 IN (8,9)

所以我们的第8季度有重叠。

我们为SSAS多维数据集创建了一个维度,标注了每种可能性,看起来与此类似:

Quarter    RollUpID    Label
1          1           "Leading quarter 2"
2          1           "Leading quarter 2"
2          2           "Leading quarter 3"
3          2           "Leading quarter 3"
3          3           "Leading quarter 4"
4          3           "Leading quarter 4"

然后我们希望在RollUpID上聚合。这似乎不像我们预期的那样工作......

我在MDX中看到很多使用.lag()函数的解决方案但是有一个基于维度事实的方法可能有效吗?否则,我们需要为每个指标创建三个新措施(单季度平均值,2季度滚动值和4季度滚动值)。

0 个答案:

没有答案