TopPercent(MDX)TopPercent (MDX)

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)아니요Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

집합을 내림차순으로 정렬하고 누적 합계가 지정된 백분율 이상인 상위 값 튜플 집합을 반환합니다.Sorts a set in descending order, and returns a set of tuples with the highest values whose cumulative total is equal to or greater than a specified percentage.

구문Syntax


TopPercent(Set_Expression, Percentage, Numeric_Expression)   

인수Arguments

Set_ExpressionSet_Expression
집합을 반환하는 유효한 MDX 식입니다.A valid Multidimensional Expressions (MDX) expression that returns a set.

백분율Percentage
반환할 튜플의 백분율을 지정하는 유효한 숫자 식입니다.A valid numeric expression that specifies the percentage of tuples to be returned.

중요

백분율 양수 값 이어야 합니다. 음수 값에 오류가 발생 합니다.Percentage needs to be a positive value; negative values generate an error.

Numeric_ExpressionNumeric_Expression
숫자를 반환하는 셀 좌표의 유효한 숫자 식으로서, 일반적으로 MDX 식입니다.A valid numeric expression that is typically a Multidimensional Expressions (MDX) expression of cell coordinates that return a number.

주의Remarks

TopPercent 함수 집합을 내림차순 정렬 지정된 된 집합에 대해 계산 된 지정된 된 숫자 식의 합계를 계산 합니다.The TopPercent function calculates the sum of the specified numeric expression evaluated over the specified set, sorting the set in descending order. 그런 다음 총 합계 값에 대한 누적 백분율이 지정된 백분율 이상이 되는 상위 값 요소를 반환합니다.The function then returns the elements with the highest values whose cumulative percentage of the total summed value is at least the specified percentage. 이 함수는 누적 합계가 지정된 백분율 이상이 되는 집합의 가장 작은 하위 집합을 반환합니다.This function returns the smallest subset of a set whose cumulative total is at least the specified percentage. 반환되는 요소는 가장 큰 값에서 가장 작은 값 순서로 정렬됩니다.The returned elements are ordered largest to smallest.

경고

경우 Numeric_Expression 다음 음수 값을 반환할 TopPercent 만 1 개 행을 반환 합니다.If Numeric_Expression returns any negative value then TopPercent returns only one (1) row.

이 동작의 세부적인 내용은 두 번째 예제를 참조하십시오.See the second example for a detailed presentation of this behavior.

중요

마찬가지로 BottomPercent 함수는 TopPercent 함수 계층을 항상 무시 합니다.Like the BottomPercent function, the TopPercent function always breaks the hierarchy.

예제Example

다음 예에서는 Bike 범주에 대해 대리점의 상위 10% 매출에 기여하는 최고의 도시를 반환합니다.The following example returns the best cities that help make the top 10% of the resellers' sales, for the Bike category. 결과는 매출액이 가장 높은 도시부터 내림차순으로 정렬됩니다.The result is sorted in descending order, beginning with the city that has the highest value of sales.

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

위의 식은 다음 결과를 생성합니다.The above expression produces the following results:

Reseller Sales AmountReseller Sales Amount
TorontoToronto $3,508,904.84$3,508,904.84
LondonLondon $1,521,530.09$1,521,530.09
SeattleSeattle $1,209,418.16$1,209,418.16
파리Paris $1,170,425.18$1,170,425.18

원래 데이터 집합은 다음 쿼리로 얻을 수 있으며 588개의 행을 반환합니다.The original set of data can be obtained with the following query and returns 588 rows:

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

예제Example

다음 연습에서 음수 값의 효과 이해 하는 데 도움이 됩니다는 Numeric_Expression합니다.The following walkthrough will help understand the effect of negative values in the Numeric_Expression. 우선 동작을 나타낼 수 있는 컨텍스트를 만들어 보겠습니다.First let's build some context where we can present the behavior.

다음 쿼리는 수익의 내림차순으로 정렬된 Resellers 'Sales Amount', 'Total Product Cost' 및 'Gross Profit'의 테이블을 반환합니다.The following query returns a table of Resellers 'Sales Amount', 'Total Product Cost' and 'Gross Profit', sorted in descending order of profit. 수익이 음수 값만 있으므로 가장 적은 손해가 위쪽에 나타납니다.Please note there are only negative values for profit; so, the smallest loss appears at the top.

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]  

위의 쿼리는 다음 결과를 반환합니다. 가운데 섹션의 행은 가독성을 위해 제거되었습니다.The above query returns the following results; rows from the middle section were removed for readability.

Reseller Sales AmountReseller Sales Amount Reseller Total Product CostReseller Total Product Cost Reseller Gross ProfitReseller Gross Profit
Touring-2000 Blue, 50Touring-2000 Blue, 50 $157,444.56$157,444.56 $163,112.57$163,112.57 ($5,668.01)($5,668.01)
파란색, 46 touring 2000Touring-2000 Blue, 46 $321,027.03$321,027.03 $333,021.50$333,021.50 ($11,994.47)($11,994.47)
Touring-3000 Blue, 62Touring-3000 Blue, 62 $87,773.61$87,773.61 $100,133.52$100,133.52 ($12,359.91)($12,359.91)
Touring-1000 노란색, 46Touring-1000 Yellow, 46 $1,016,312.83$1,016,312.83 $1,234,454.27$1,234,454.27 ($218,141.44)($218,141.44)
Touring-1000 Yellow, 60Touring-1000 Yellow, 60 $1,184,363.30$1,184,363.30 $1,443,407.51$1,443,407.51 ($259,044.21)($259,044.21)

수익별로 상위 100% 자전거를 프레젠테이션해야 할 경우에는 다음과 같은 쿼리를 작성합니다.Now, if you were asked to present the top 100% bikes by profit you would write a query like:

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%를 요청하는 쿼리란 모든 행을 반환해야 함을 의미합니다.Please note that the query asks for one hundred percent (100%); that means all rows should be returned. 그러나에 음수 값을 있기 때문에 Numeric_Expression , 하나의 행만 반환 됩니다.However, because there are negative values in the Numeric_Expression , only one row is returned.

Reseller Sales AmountReseller Sales Amount Reseller Total Product CostReseller Total Product Cost Reseller Gross ProfitReseller Gross Profit
Touring-2000 Blue, 50Touring-2000 Blue, 50 $157,444.56$157,444.56 $163,112.57$163,112.57 ($5,668.01)($5,668.01)

참고 항목See Also

MDX 함수 참조 ( Mdx)MDX Function Reference (MDX)