我正在使用名为spotfire的软件,我可以在其中设置"自定义表达式"与MDX。顺便说一句,不需要知道这个软件来回答这个问题。我希望一般的答案可以帮助其他人,即使他们不使用点火器。
我需要为每个组获得移动平均值 。我有很多小组,我不能为每个小组制作一张桌子。
以下是我的表格示例:
ID | GROUP | DATE | VALUE | MVG_AVG
------------------------------------------
a | A | 05/10 | 5 |
b | B | 05/10 | 4 |
c | A | 05/11 | 9 |
d | B | 05/11 | 7 |
e | B | 05/12 | 7 |
f | B | 05/13 | 7 |
g | A | 05/12 | 1 |
h | B | 05/14 | 1 |
我找到了 LastPeriods 功能,但我不能让它适用于每个群组。我使用n = 3作为函数。
这是与移动平均线的预期结果相同的表格:
ID | GROUP | DATE | VALUE | MVG_AVG
------------------------------------------
a | A | 05/10 | 5 | 5 #because no previous value (for group A)
b | B | 05/10 | 4 | 4
c | A | 05/11 | 9 | 5 # =(5+9+1)/3
d | B | 05/11 | 7 | 6
e | B | 05/12 | 7 | 7
f | B | 05/13 | 7 | 5
g | A | 05/12 | 1 | 1 #because no next value (for group A)
h | B | 05/14 | 1 | 1
以下是我在Spotfire中的当前自定义表达式,它没有考虑到群组:
Sum([VALUE]) OVER (LastPeriods(3,[DATE])) / 3