MDX函数

MDX函数

0
投票
2
已解决
1653
浏览
0
投票
2
回答
2810
浏览
0
投票
5
回答
3349
浏览
0
投票
2
回答
3254
浏览
0
投票
15
回答
2718
浏览
0
投票
2
回答
2259
浏览
0
投票
1
回答
3303
浏览
0
投票
1
回答
3115
浏览
0
投票
6
回答
3196
浏览
0
投票
2
回答
2957
浏览
0
投票
3
回答
2743
浏览
0
投票
1
回答
2968
浏览
0
投票
0
回答
2577
浏览

关于层级的排名

tony_yi 发起了问题 • 2014-11-11 14:55
0
投票
1
回答
3331
浏览

mdx topcount 降序查询语句怎么写

梁勇 回复了问题 • 2014-03-20 17:47
条新动态, 点击查看
-- 模糊查询: MDX 类似SQL查询中的Like
--vbamdx!INSTR() 返回一个字符串在另一字符串中第一次出现的位置
-- 本例中, 返回 'Mountain'在子类别成员中第一次出现的位置, 如果位置大于等于1
-- 说明存在, 因此... 显示全部 »
-- 模糊查询: MDX 类似SQL查询中的Like
--vbamdx!INSTR() 返回一个字符串在另一字符串中第一次出现的位置
-- 本例中, 返回 'Mountain'在子类别成员中第一次出现的位置, 如果位置大于等于1
-- 说明存在, 因此过滤出此成员
with
set as
filter(...members,
vbamdx!INSTR(..currentmember.name,
'Mountain',1>=1))
select
{.,.}
on 0,
{}
on 1
from




549
这是个很有意思的问题,抽象化总结归类的话,这个属于把动态的度量值(distinct count pricebrand)作为维度来聚合分析数据的典型案例,之所以把“价格带”这个字段设计到事实表里,是因为它不是会员的静态属性,每个会员的“价格带”标签会因指定的消费... 显示全部 »
这是个很有意思的问题,抽象化总结归类的话,这个属于把动态的度量值(distinct count pricebrand)作为维度来聚合分析数据的典型案例,之所以把“价格带”这个字段设计到事实表里,是因为它不是会员的静态属性,每个会员的“价格带”标签会因指定的消费时间段不同而不同,首先要说声抱歉,我不会写这个MDX,如果你还没有失望以致绝望的话,且听我分析几个问题
首先,为什么一定要使用MDX?也许是信了坊间流传的Cube的查询性能一定是优越于DB的,因为Cube有预计算,有聚合处理,那么一定会让你失望的是,这个想法并不是无往不利,Cube和DB的查询优化器工作原理有很大差异,就拿你这个案例来说,用MDX Filter来实现查询,原理类似于MSSQL的Cross Apply,是要遍历循环每个会员,对每个会员进行事实度量值的聚合汇总,然后再对所有会员汇总后的度量值进行分组,也许你会说DB QO也是如此啊,SQL子查询方式来实现看执行计划可能也是个Nest Loop循环,非要这么说的话,Cross Apply其实也算是个Nest Loop,那为什么还会和子查询的写法有很大的性能差距呢,举个例子来说比较容易理解些,就像你去取款机取一万块钱,ATM点钞的过程就是个Nest Loop循环,一把取出来一万元是在内部循环了一百次点钞的过程,而分一百次每次一百元取款,同样的一百次点钞循环,取款效率是不是低了很多。所以如果仅仅是因为性能的原因要全盘MDX化,建议重新审视下数据库是否已经优化到没有任何提升空间了,如果SQL能够高效简便的解决问题,实在没有太多基于性能上的理由选择MDX,也有可能是你的数据源只有Cube,所以没得选择只能MDX,那么我想说这个架构可能是非常危险的,MDX的可维护性远不如SQL,正常的人事变迁都有可能使整个项目陷入无人支持维护的境地。
其次,选择MDX的一个让我无法抗拒的理由是它的多维聚合分析能力,这个是SQL不容易实现的,这时候一定也会有SQL万能论者难以苟同,我得强调下,这里的不容易实现特指的是自助式BI平台,如果你有对比过ROLAP和MOLAP实现的自助式BI的实现原理,是能够理解MOLAP在这个方向上得天独厚的优势
最后,只剩一句话了:让上帝的归上帝,凯撒的归凯撒吧,SQL和MDX结合起来用可能才是你想要的理想答案
With Member Msr as Sum
(
   {[Date].[Date].&[2]:[Date].[Date].&[8]}, [Measures].[Internet Sales Amount]
) Select Msr on 0 ... 显示全部 »
With Member Msr as Sum
(
   {[Date].[Date].&[2]:[Date].[Date].&[8]}, [Measures].[Internet Sales Amount]
) Select Msr on 0 from [Adventure Works]

http://www.purplefrogsystems.com/blog/2013/04/mdx-between-start-date-and-end-date/
看一下这篇文章
0
投票
2
已解决
1653
浏览
0
投票
2
回答
2810
浏览
0
投票
2
回答
3254
浏览
0
投票
15
回答
2718
浏览
0
投票
2
回答
2259
浏览
0
投票
1
回答
3303
浏览
0
投票
1
回答
3115
浏览
0
投票
6
回答
3196
浏览
0
投票
2
回答
2957
浏览
0
投票
3
回答
2743
浏览
0
投票
1
回答
2968
浏览
0
投票
0
回答
2577
浏览

关于层级的排名

tony_yi 发起了问题 • 2014-11-11 14:55
0
投票
1
回答
3331
浏览

mdx topcount 降序查询语句怎么写

梁勇 回复了问题 • 2014-03-20 17:47