复杂或有趣的MDX问题求解(1)-多个相关列参与求加权平均值

收集网络或论坛的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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值