다음을 통해 공유


TopPercent(MDX)

집합을 내림차순으로 정렬하고 누적 합계가 지정된 백분율 이상인 상위 값 튜플 집합을 반환합니다.

구문

TopPercent(Set_Expression, Percentage, Numeric_Expression) 

인수

  • Set_Expression
    집합을 반환하는 유효한 MDX 식입니다.

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

    중요 정보중요

    Percentage 값은 양수여야 하며, 값이 음수이면 오류가 발생합니다.

  • Numeric_Expression
    숫자를 반환하는 셀 좌표의 유효한 숫자 식으로서, 일반적으로 MDX 식입니다.

주의

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

주의 사항주의

Numeric_Expression 이 음수 값을 반환할 경우 TopPercent는 하나의 한 개의 행만 반환합니다.

이 동작의 세부적인 내용은 두 번째 예제를 참조하십시오.

중요 정보중요

TopPercent 함수는 BottomPercent 함수와 마찬가지로 계층을 항상 무시합니다.

다음 예에서는 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에서 음수 값의 결과를 이해하는 데 도움이 됩니다. 우선 동작을 나타낼 수 있는 컨텍스트를 만들어 보겠습니다.

다음 쿼리는 수익의 내림차순으로 정렬된 Resellers '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)