收集网络或论坛的MDX语句求解问题,收集自己或别人(如果是别人,会特别注明)给出的解答,欢迎指正;暂未提供解答的,欢迎一起解答。
1. 多个相关列求加权平均
Question:
使用MDX查询语句想求地区维度为‘1’的时候customer+consumer的加权平均数
假如在地区‘1’处有如下几条数据:
price customer consumer
1 10 20
2 30 40
3 50 60
想要的公式是:
[(10+20)×1 + (30+40)×2 + (50+60)×3]/(1+2+3)
使用MDX语句或者表达式如何去求。
Answer:
with member [Measures].[a] as '([Measures].[Store Sales]+[Measures].[Store Cost])*[Measures].[Sales Count]'
member [Measures].[b] as 'sum({[Time].[1997].[Q1],[Time].[1997].[Q2],[Time].[1997].[Q3]},[Measures].[Sales Count])'
member [Measures].[result] as '[Measures].[a]/[Measures].[b]'
select
{[Measures].[result]} on columns,
{[Store].[All Stores].[USA]} on rows
from sales
其中,假定:
1) price = [Measures].[Sales Count]
customer= [Measures].[Store Sales]
consumer =[Measures].[Store Cost]
2) 地区1=USA
USA的三条数据发生在Q1,Q2,Q3
补充说明:
如果和USA同轴的不止时间轴,则可将余下的轴执行{{轴1成员集合}*{……}*{轴n成员集合}}操作,替代解答中的{[Time].[1997].[Q1],[Time].[1997].[Q2],[Time].[1997].[Q3]},因为CrossJion的结果仍然是SET.