如何按日期级别制作汇总表

Posted

技术标签:

【中文标题】如何按日期级别制作汇总表【英文标题】:How to make aggragate tables by date levels 【发布时间】:2016-10-07 14:11:35 【问题描述】:

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

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】:

我不完全理解你的问题。我想你想得到 [Pc in avg by month],[Pc in avg by Quarter] 和 [Pc in avg by day] 一样。如果是这种情况,将它们作为度量添加到多维数据集可能不是正确的方法。

正如您所说,您有一个带有度量 [Pc in sum] 的日期聚合表,您可以添加不同的月份、季度和年份聚合表,如果您需要 [Pc in avg by month],您可以按如下方式修改查询

    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]

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

【讨论】:

我会试试这个选项并告诉你结果。 他将只使用聚合来衡量总和。 我认为在多维数据集模式定义中,您必须指定聚合方法(sum、avg 等)。这可能是原因。如果您需要总和和平均值,您可能需要为计数添加另一个度量,并且可能已经计算了带有总和/计数的平均值的度量。但我不确定这个选项。

以上是关于如何按日期级别制作汇总表的主要内容,如果未能解决你的问题,请参考以下文章

按段分组报表制作

excel表格日期下拉框制作教程

如何制作汇总表?

Excel中制作折线图的横坐标是按时间顺序自动排列的,请问如何设置在横坐标上显示自定义的时间?

我如何创建(临时?)存储过程来帮助制作摘要视图?

如何制作动态层分组报表