TopPercent (MDX)

依遞減的順序排序集合,並傳回數值最高的 Tuple 集合,此集合的累計總和須等於或大於指定的百分比。

語法

TopPercent(Set_Expression, Percentage, Numeric_Expression) 

引數

  • Set_Expression
    傳回集合的有效多維度運算式 (MDX) 運算式。

  • Percentage
    有效的數值運算式,指定要傳回的 Tuple 百分比。

    重要事項重要事項

    Percentage 必須是正值;負值會產生錯誤。

  • Numeric_Expression
    有效的數值運算式,這通常是傳回數字之資料格座標的多維度運算式 (MDX) 運算式。

備註

TopPercent 函數會在評估指定集合並以遞減順序排序集合之後,計算指定數值運算式的總和。 然後,此函數會傳回最高值的元素,它們的總和值累計百分比至少是指定的百分比。 這個函數會傳回累計總計至少是指定百分比之集合的最小子集。 傳回從最大到最小排列的元素。

警告注意事項注意

如果 Numeric_Expression 傳回任何負值,TopPercent 只會傳回一 (1) 個資料列。

如需有關此行為的詳細呈現,請參閱第二個範例。

重要事項重要事項

BottomPercent 一樣,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])

上述運算式會產生下列結果:

Reseller Sales Amount

Toronto

$3,508,904.84

London

$1,521,530.09

Seattle

$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])

範例

下列逐步解說有助於您了解 Numeric_Expression 中之負值的影響。 首先讓我們建立可顯示行為的一些內容。

下列查詢傳回轉銷商 'Sales Amount'、'Total Product Cost' 和 'Gross Profit' 的資料表,依收益的遞減順序排序。 請注意,只有負值的收益,因此最小的損失會顯示在最上方。

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]

上述查詢傳回下列結果;為提高可讀性,中間部分的資料列已移除。

Reseller Sales Amount

Reseller Total Product Cost

Reseller Gross Profit

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)

Touring-1000 Yellow, 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 有負值,所以只傳回一個資料列。

Reseller Sales Amount

Reseller Total Product Cost

Reseller Gross Profit

Touring-2000 Blue, 50

$157,444.56

$163,112.57

($5,668.01)

請參閱

參考

MDX 函數參考 (MDX)