MDX示例:统计各产品每个季度的销售排名

ITPUB数据仓库与数据挖掘论坛用户Damon__Li问:

统计各种产品在本年每个季度的销售排名,(现在有日期、产品维度和销售额度量)大体显示如下
                         Q1                    Q2                    Q3                  Q4
                销售额    排名     销售额    排名      销售额   排名    销售额   排名
产品1         3000       2         2000      3          5000     1         4000    1
产品2         4000       1         3000      2          4000     2         2000    3
产品3         2000       3         4000      1          3000     3         3000    2
…….
请熟悉MDX的前辈指点,提供思路。

10多年前就搞MDX,尽管现在不从事这方面工作了,但这种问题看到就手痒。

以下是在SSAS 2008 R2 及SQL Server [Adventure Works]示例数据库(在Codeplex有下载)给出的求解(示例中,季度位于时间维度第2层级):

统计各种产品在本年每个季度的销售排名.MDX
1
2
3
4
5
6
7
8
9
10
11
12
13
14
WITH
     MEMBER [Measures].[SalesRank] AS
         RANK(
             [Product].[Product Categories].currentmember,
             [Product].[Product Categories].[ All Products].children ,
             [Measures].[Sales Amount]
         )
 
SELECT
     {DESCENDANTS([ Date ].[Calendar].[Calendar Year ].&[2007],2)}
     *{[Measures].[Sales Amount],[Measures].[SalesRank]} ON 0,
     [Product].[Product Categories].[ All Products].children ON 1
FROM
     [Adventure Works]

以下是在SSAS中执行的情况,可以将[Date].[Calendar].[Calendar Year].&[2007]用[Date].[Calendar].CurrentMember替换,改为在WHERE语句里指定年度[Date].[Calendar].[Calendar Year].&[2007],放在查询切片中后,利于在切片中指定查询条件。

统计各种产品在本年每个季度的销售排名

统计各种产品在本年每个季度的销售排名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值