如何开始使用MDX

如何开始使用MDX,mdx,sql-server-2008-r2,Mdx,Sql Server 2008 R2,嗨,我一直在玩MDX,需要一些非常高级的入门指导。我已经有一个SQLServer2008R2数据库启动并运行,其中包含数据。我想在MDX中尝试一些非常简单的方法来熟悉流程。我不是DW或多维数据集专家,所以我需要慢慢开始。(事实/维度对我来说是新的) 我有一个来自关系数据库的视图,我希望将其用作MDX的单一源。很简单: TABLE WEEKLY_GAIN PCTGAIN (DECIMAL) -- The pre-calc'd pctg gain in price from day x to d

嗨,我一直在玩MDX,需要一些非常高级的入门指导。我已经有一个SQLServer2008R2数据库启动并运行,其中包含数据。我想在MDX中尝试一些非常简单的方法来熟悉流程。我不是DW或多维数据集专家,所以我需要慢慢开始。(事实/维度对我来说是新的)

我有一个来自关系数据库的视图,我希望将其用作MDX的单一源。很简单:

TABLE WEEKLY_GAIN
  PCTGAIN (DECIMAL) -- The pre-calc'd pctg gain in price from day x to day x+1  
  DATE (DATE)       -- The date the stock pctgain was generated  
  WEEK(INT)         -- Contiguous/Consecutive integer that is keyed to the last trading day of each week.  
  YEAR (INT)        -- The year of the current PCTGAIN from the DATE column
样本数据:

PCTGAIN          DATE           WEEK   YEAR  
0.01709791       2011-01-14     2      2011  
0.01102063       2011-01-07     1      2011  
0.0006922469     2010-12-31     52     2010  
0.01033836       2010-12-23     51     2010
我想使用MDX生成一个立方体和一些函数(中位数、均值、STDEV等)。我已成功地将上述视图标识为MDX中的源。但是,我需要帮助定义(MDX)维度、键、多维数据集定义,以及其他需要完成的操作等

我相信这应该是直截了当的(日期、周、年都是维度?)

我想生成的一个“多维数据集”是……所有年份(1950-2011)都是行,所有周(1-52)都是列,然后为所有年份中的每个周数生成一些最小、最大、平均、PCTGAIN聚合。我认识到使用T-SQL有很多方法可以做到这一点。然而,我希望在MDX中这样做,以了解设置MDX的诀窍,并利用它提高效率


我很高兴根据需要提供更多细节。谢谢

这里有一些学习MDX的好资源:

在最后一个示例中,处理时段的行而不是列通常要容易得多,因此我建议取消对表的初始化,以便每周都是行,然后构建具有正确级别的日期维度。完成后,您将能够使用MDX函数相对轻松地计算最小值、最大值、平均值、PCTGAIN等。

阅读本书:

Microsoft SQL Server 2008 MDX逐步升级

这是最好的