TopPercent (MDX)
依遞減順序排序集合,並傳回一組具有最大值的 Tuple,其累計總計等於或大於指定百分比。
語法
TopPercent(Set_Expression, Percentage, Numeric_Expression)
引數
Set_Expression
傳回集合的有效多維度運算式 (MDX) 運算式。
百分比
有效的數值運算式,指定要傳回之 Tuple 的百分比。
重要
百分比 必須是正值;負值會產生錯誤。
Numeric_Expression
有效的數值運算式,通常是傳回數位之儲存格座標的多維度運算式 (MDX) 運算式。
備註
TopPercent 函式會計算在指定集合上評估的指定數值運算式總和,並依遞減順序排序集合。 然後,函式會傳回具有最高值的專案,其總加總值的累計百分比至少為指定的百分比。 此函式會傳回集合的最小子集,其累計總計至少為指定的百分比。 傳回的專案會依最大到最小的順序排序。
警告
如果 Numeric_Expression 傳回任何負值, TopPercent 只會傳回一個 (1) 個數據列。
如需此行為的詳細呈現,請參閱第二個範例。
重要
如同 BottomPercent 函式, TopPercent 函式一律會中斷階層。
範例
A. 傳回 TopPercent
下列範例會針對 Bike 類別,傳回有助於讓轉銷商銷售前 10% 的最佳城市。 結果會以遞減順序排序,從銷售值最高的城市開始。
SELECT [Measures].[Reseller Sales Amount] ON 0,
TopPercent
({[Geography].[Geography].[City].Members}
, 10
, [Measures].[Reseller Sales Amount]
) ON 1
FROM [Adventure Works]
WHERE([Product].[Product Categories].[Bikes])
上述運算式會產生下列結果:
City | 轉銷商銷售金額 |
---|---|
Toronto | $3,508,904.84 |
London | $1,521,530.09 |
西雅圖 | $1,209,418.16 |
Paris | $1,170,425.18 |
您可以使用下列查詢取得原始資料集,並傳回 588 個數據列:
SELECT [Measures].[Reseller Sales Amount] ON 0,
Order
({[Geography].[Geography].[City].Members}
, [Measures].[Reseller Sales Amount]
, BDESC
) ON 1
FROM [Adventure Works]
WHERE([Product].[Product Categories].[Bikes])
B. 瞭解負值的效果
下列逐步解說將協助瞭解Numeric_Expression 中 負值的影響。 首先,讓我們建置一些可以呈現行為的內容。
下列查詢會傳回轉銷商 「銷售金額」、「總產品成本」和「毛利潤」的資料表,依利潤遞減順序排序。 請注意,利潤只有負值;因此,最小的損失會出現在頂端。
SELECT { [Measures].[Reseller Sales Amount], [Measures].[Reseller Total Product Cost], [Measures].[Reseller Gross Profit] } ON columns
, ORDER( [Product].[Product Categories].[Bikes].[Touring Bikes].children, [Measures].[Reseller Gross Profit], BDESC ) ON rows
FROM [Adventure Works]
上述查詢會傳回下列結果:已移除中間區段的資料列,以取得可讀性。
休閒車 | 轉銷商銷售金額 | 轉銷商產品總成本 | 轉銷商總利潤 |
---|---|---|---|
Touring-2000 Blue, 50 | $157,444.56 | $163,112.57 | (5,668.01美元) |
Touring-2000 Blue, 46 | $321,027.03 | $333,021.50 | (11,994.47美元) |
Touring-3000 Blue, 62 | $87,773.61 | $100,133.52 | (12,359.91美元) |
... | ... | ... | ... |
旅遊 - 1000 黃色, 46 | $1,016,312.83 | $1,234,454.27 | ($218,141.44) |
Touring-1000 Yellow, 60 | $1,184,363.30 | $1,443,407.51 | (259,044.21美元) |
現在,如果您被要求以利潤呈現前 100% 自行車,您會撰寫如下的查詢:
SELECT { [Measures].[Reseller Sales Amount], [Measures].[Reseller Total Product Cost], [Measures].[Reseller Gross Profit] } ON columns
, TOPPERCENT( [Product].[Product Categories].[Bikes].[Touring Bikes].children, 100,[Measures].[Reseller Gross Profit] ) ON rows
FROM [Adventure Works]
請注意,查詢會要求百分之一百 (100%):這表示應該傳回所有資料列。 不過,由於Numeric_Expression 中有 負值,因此只會傳回一個資料列。
休閒車 | 轉銷商銷售金額 | 轉銷商產品總成本 | 轉銷商總利潤 |
---|---|---|---|
Touring-2000 Blue, 50 | $157,444.56 | $163,112.57 | (5,668.01美元) |