MDX 是否通用

0
目前所知 微软的数据库Cube采用的是 MDX查询语言。
不知道 Oracle 或者 DB2 这类数据库各自的 Cube查询语言是什么?
SQL Oracle Db2 是否通用呢?
还是像 目前的 TSQL一样, 各自都有大部分遵循 Ansi9X的标准,然后自己有加入一些自己的函数,语法,之类。
已邀请:
1

梁勇 - 天道酬勤、上善若水。爱好商业智能 2014-01-22 回答

这个不通用,不过语法基本差不多的。目前多维表达式这块:微软的SSAS、Cognos TS建模用的比较多,Oracle的Essbase用的比较多。。
给你贴一个 微软BI 和 Cognos 求同期函数的,你参考下。
微软BI

(..PARENT.PrevMember ,.)
(PARALLELPERIOD( .. ,1),.)


而对应的Cognos写法如下:

prevMember (...->?month?)
parallelPeriod(...,1,...->?month?))
1

andrea_zhou - 咨询顾问、BA 2014-04-28 回答

首先,MDX应当是有一定的规范的,我不确切是否有成文的譬如某个委员会的标准。但是是有标准语法的,譬如:
SELECT {[Measures].[Unit Sales], [Measures].[Store Sales]} ON COLUMNS,
{[Product].members} ON ROWS
FROM [Sales]
WHERE [Time].[1997].[Q2]
其次,实际各个产品中许多的关键字会很相似,可是,在产品CUBE中具体的写法会有蛮多不一样,这其中,跟他们OLAP的设计会有关系, 譬如,ESSBASE和SSAS是两个在些许年前最流行的MOLAP产品(看看现在ROLAP横行,果然不得不感叹三十年河东三十年河西啊),他们之间的一些CUBE开发和MDX写法,就会有一些区别的 。
这里有本书,就是说的这么回事,你可以去看看,有点老,但是经典不过时。
MDX Solutions: With Microsoft SQL Server Analysis Services 2005 and Hyperion Essbase
既然它要分面向产品来介绍,自然就是由不同了。
再次,其他工具亦是这样 ,譬如COGNOS的TR,里面也会有一些不同。
最后,掌握MDX的时候,关注一下你用的产品是MOLAP还是ROLAP的。我好像记得COGNOS 的FM里和也有一些多维操作的函数,他们也会有成员的shift类似的功能,但是语法好像区别会更大一些。
0

housheng33 - 专注金融BI http://blog.csdn.net/housheng33 2014-04-11 回答

MONDRIAN 开源OLAP服务器
看看语法大概也知道了~

要回复问题请先登录注册