如何开始使用 MDX
Posted
技术标签:
【中文标题】如何开始使用 MDX【英文标题】:How to get started with MDX 【发布时间】:2011-02-15 01:46:35 【问题描述】:您好,我一直在玩 MDX,需要一些非常高级的入门类型指导。我已经有一个 SQL-Server 2008 R2 数据库并运行其中的数据。我想在 MDX 中尝试一些非常简单的东西来熟悉流程。我不是 DW 或 Cube 专家,所以我需要慢慢开始。 (事实/维度对我来说是新的)
我的关系数据库中有一个视图,我希望将其用作 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 生成一个立方体和一些函数(MEDIAN、MEAN、STDEV 等)。我已经成功地将上述视图识别为 MDX 中的来源。但是,我需要帮助定义(MDX)维度、键、多维数据集定义以及其他需要完成的操作等。
我认为这应该是直截了当的(日期、周、年将是维度?)但我不确定。
我想生成的一个“立方体”是...所有年份 (1950-2011) 都是行,所有周 (1-52) 都是列,然后生成一些 MIN、MAX、MED、聚合在所有年份中每周数的PCTGAIN。我知道有办法用 T-SQL 做到这一点。但是,我希望在 MDX 中执行此操作,以掌握设置 MDX 并提高工作效率的窍门。
我很乐意根据需要提供更多详细信息。谢谢
【问题讨论】:
【参考方案1】:这里有一些学习 MDX 的好资源:How to learn MDX
在您的最后一个示例中,使用行而不是列来处理您的期间通常要容易得多,因此我建议您对表格进行 UNPIVOTing,以便每周都是一行,然后构建具有正确级别的日期维度。完成后,您将能够使用 MDX 函数相对轻松地计算 MIN、MAX、MED、PCTGAIN 等。
【讨论】:
【参考方案2】:阅读本书:
Microsoft SQL Server 2008 MDX 一步一步
是最好的。
【讨论】:
以上是关于如何开始使用 MDX的主要内容,如果未能解决你的问题,请参考以下文章