TopPercent(MDX)

집합을 내림차순으로 정렬하고 누적 합계가 지정된 백분율보다 크거나 같은 값이 가장 높은 튜플 집합을 반환합니다.

구문

  
TopPercent(Set_Expression, Percentage, Numeric_Expression)   

인수

Set_Expression
집합을 반환하는 유효한 MDX(다차원 식) 식입니다.

비율
반환할 튜플의 백분율을 지정하는 유효한 숫자 식입니다.

Important

백분율은 양수 값이어야 합니다. 음수 값은 오류를 생성합니다.

Numeric_Expression
일반적으로 숫자를 반환하는 셀 좌표의 MDX(다차원 식) 식인 유효한 숫자 식입니다.

설명

TopPercent 함수는 지정된 집합에 대해 계산된 지정된 숫자 식의 합계를 계산하여 집합을 내림차순으로 정렬합니다. 그런 다음, 함수는 총 합계 값의 누적 백분율이 지정된 백분율 이상인 값이 가장 높은 요소를 반환합니다. 이 함수는 누적 합계가 지정된 백분율 이상이 되는 집합의 가장 작은 하위 집합을 반환합니다. 반환된 요소는 가장 큰 것에서 가장 작은 순서로 정렬됩니다.

경고

Numeric_Expression 음수 값을 반환하면 TopPercent는 하나의 행만 반환합니다.

이 동작에 대한 자세한 프레젠테이션은 두 번째 예제를 참조하세요.

Important

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
런던 $1,521,530.09
Seattle $1,209,418.16
파리 $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 Bikes 재판매인 판매액 재판매인 총 제품 비용 Reseller Gross Profit
Touring-2000 Blue, 50 $157,444.56 $163,112.57 ($5,668.01)
투어링-2000 블루, 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%(100%)를 요청합니다. 즉, 모든 행이 반환되어야 합니다. 그러나 Numeric_Expression 음수 값이 있으므로 하나의 행만 반환됩니다.

Touring Bikes 재판매인 판매액 재판매인 총 제품 비용 Reseller Gross Profit
Touring-2000 Blue, 50 $157,444.56 $163,112.57 ($5,668.01)

참고 항목

MDX 함수 참조(MDX)