我有一个带有一个分层维度的数据立方体" MyTime",在每个级别中元素都是有序的。这个维度在某种程度上是一个时间维度,但不适合格里高利历的100%。 有一个立方体使用此维度。 我的OLAP架构的摘录:
<Dimension name="MyTime">
<Hierarchy hasAll="true">
<Level name="MyYear" type="Numeric" uniqueMembers="true"/>
<Level name="MyMonth" type="Numeric" uniqueMembers="true"/>
<Level name="MyDay" type="Numeric" uniqueMembers="true"/>
<Level name="MyShift" type="Numeric" uniqueMembers="true"/>
</Hierarchy>
</Dimension>
<Cube name="MyCube">
<DimensionUsage name="MyTime" source="MyTime"/>
<Measure name"Price" aggregator="avg"/>
</Cube>
DB-Tables看起来像这样:
MyTimeDim
id | myYear | myMonth | myDay | myShift | ... other fields
---+--------+---------+-------+---------+-----------------
1 | 2014 | 6 | 3 | 1 |
2 | 2014 | 6 | 3 | 2 |
3 | 2014 | 6 | 3 | 3 |
4 | 2014 | 6 | 4 | 1 |
5 | 2014 | 6 | 4 | 2 |
6 | 2014 | 6 | 4 | 3 |
MyFact
id | timeDim | price
---+---------+------
1 | 1 | 20
2 | 2 | 9
3 | 3 | 25
4 | 4 | 3
5 | 5 | 37
6 | 6 | 5
任务是显示按MyTime向下钻取的分层评估。在每个级别上,必须构建价格的不同聚合。容易的是最小和最大。但我还必须展示第一个和最后一个成员。
这意味着在日级别,结果应如下所示:
Date | Min | Max | First | Last
-----------+-----+-----+-------+-----
2014-06-03 | 9 | 25 | 20 | 25
2014-06-04 | 20 | 37 | 3 | 5
我认为,要提供这个,我必须定义一个计算成员。但我无法弄清楚,如何设置&#34;用户定义&#34;聚合
答案 0 :(得分:1)
截至目前,蒙德里安没有第一次或最后一次聚合。
执行此操作的唯一方法是IMO,其查询时间为计算成员,如下所示:
MEMBER [Measures].[Last Period Measure] as ( [Measures].[My Measures], [MyTime].CurrentMember.LastChild)