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].[AllProducts].children ,
            [Measures].[Sales Amount]
        )
 
SELECT
    {DESCENDANTS([Date].[Calendar].[CalendarYear].&[2007],2)}
    *{[Measures].[Sales Amount],[Measures].[SalesRank]} ON0,
    [Product].[Product Categories].[AllProducts].childrenON1
FROM
    [Adventure Works]

以下是在SSAS中執行的情況,可以將[Date].[Calendar].[Calendar Year].&[2007]用[Date].[Calendar].CurrentMember替換,改爲在WHERE語句裏指定年度[Date].[Calendar].[Calendar Year].&[2007],放在查詢切片中後,利於在切片中指定查詢條件。

統計各種產品在本年每個季度的銷售排名

統計各種產品在本年每個季度的銷售排名

發佈了86 篇原創文章 · 獲贊 5 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章