如何按日期级别制作aggragate表

时间:2016-10-07 14:11:36

标签: mdx mondrian

我的事实表的日期维度包含级别YearQuarterMonthDayHour,两个度量[Measure].[kind sum],每个日期级别[Measure].[kind avg]和aggragate表。例如,我有几年的时间,我需要平均几天。在这种情况下,查询将像这样

WITH
    MEMBER [Measures].[Pc in avg by day] AS AVG({[Some dimension].Children * Descendants([Date].[2013] : [Date].[2016], [Date].[Day])}, [Measures].[Pc in sum])
SELECT {[Measures].[Pc in avg by day]} ON COLUMNS
FROM [Some cube]

有一种方法可以优化查询。我需要在年度级别的聚合表中保存[Pc in avg by day][Pc in avg by month][Pc in avg by quarter]等值。我想在多维数据集中进行此测量,但在这种情况下,这将采取措施只能使用聚合表。我认为这不是正确的方式。

1 个答案:

答案 0 :(得分:1)

我不完全理解你的问题。我想你想得到[平均每个人的个人电脑],[平均每个人的个人电脑],就像[平均每天的平均电脑]一样。如果是这种情况,添加它们作为多维数据集的度量可能不是正确的方法。

正如您所说,您有一个带有度量的总计表[Pc in sum],您可以为月,季度和年添加不同的聚合表,如果需要[按个人平均值计算],则可以如下修改查询< / p>

    WITH
    MEMBER [Measures].[Pc in avg by month] AS AVG({[Some dimension].Children * Descendants([Date].[2013] : [Date].[2016], [Date].[Month])}, [Measures].[Pc in sum])
SELECT {[Measures].[Pc in avg by month]} ON COLUMNS
FROM [Some cube]

蒙德里安应该足够聪明,可以选择正确的聚合表来完成查询。在这种情况下,每月汇总