TopCount(DMX)

적용 대상: SQL Server Analysis Services

식에서 지정한 대로 순위 순서를 줄이면서 최상위 행의 지정된 수를 반환합니다.

구문

  
TopCount(<table expression>, <rank expression>, <count>)  

적용 대상

테이블 열 참조> 또는 테이블을 반환하는 함수와 같은 <테이블을 반환하는 식입니다.

반환 형식

<테이블 식>

설명

순위 식 인수에서 <제공하는 값은 테이블 식> 인수에 <제공된 행의 순위 감소 순서를 결정하며 count> 인수에 <지정된 최상위 행 수가 반환>됩니다.

TopCount 함수는 원래 결합 예측을 사용하도록 설정하기 위해 도입되었으며 일반적으로 SELECT TOP 및 ORDER BY 절을 포함하는 문과 동일한 결과를 생성합니다. 반환할 여러 예측의 사양을 지원하는 Predict(DMX) 함수를 사용하는 경우 결합 예측에 대해 더 나은 성능을 얻을 수 있습니다.

그러나 여전히 TopCount를 사용해야 하는 상황이 있습니다. 예를 들어 DMX는 하위 select 문의 TOP 한정자를 지원하지 않습니다. PredictHistogram(DMX) 함수도 TOP 추가를 지원하지 않습니다.

다음 예제는 기본 데이터 마이닝 자습서를 사용하여 빌드하는 연결 모델에 대한 예측 쿼리입니다. 쿼리는 동일한 결과를 반환하지만 첫 번째 예제에서는 TopCount를 사용하고 두 번째 예제에서는 Predict 함수를 사용합니다.

TopCount의 작동 방식을 이해하려면 먼저 중첩 테이블만 반환하는 예측 쿼리를 실행하는 것이 유용할 수 있습니다.

SELECT Predict ([Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 10)  
FROM   
     [Association]  
NATURAL PREDICTION JOIN  
SELECT (SELECT 'Women''s Mountain Shorts' as [Model]) AS [v Assoc Seq Line Items]) AS t  

참고 항목

이 예제에서 입력으로 제공된 값은 작은따옴표를 포함하므로 다른 작은따옴표 앞에 추가하여 이스케이프해야 합니다. 이스케이프 문자를 삽입하는 구문을 모르는 경우 예측 쿼리 작성기를 사용하여 쿼리를 만들 수 있습니다. 드롭다운 목록에서 값을 선택하면 필요한 이스케이프 문자가 자동으로 삽입됩니다. 자세한 내용은 데이터 마이닝 디자이너에서 Singleton 쿼리 만들기를 참조 하세요.

예제 결과:

모델 $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.291283016 0.252695851
물병 2866 0.192620472 0.175205052
패치 키트 2113 0.142012232 0.132389356
Mountain Tire Tube 1992 0.133879965 0.125304948
Mountain-200 1755 0.117951475 0.111260823
Road Tire Tube 1588 0.106727603 0.101229538
Cycling Cap 1473 0.098998589 0.094256014
펜더 세트 - 마운틴 1415 0.095100477 0.090718432
Mountain Bottle Cage 1367 0.091874454 0.087780332
Road Bottle Cage 1195 0.080314537 0.077173962

TopCount 함수는 이 쿼리의 결과를 가져와서 지정된 수의 가장 작은 값 행을 반환합니다.

SELECT   
TopCount  
    (  
    Predict ([Association].[v Assoc Seq Line Items],INCLUDE_STATISTICS,10),  
    $SUPPORT,  
    3)  
FROM   
     [Association]  
NATURAL PREDICTION JOIN  
(SELECT (SELECT 'Women''s Mountain Shorts' as [Model]) AS [v Assoc Seq Line Items]) AS t  

TopCount 함수의 첫 번째 인수는 테이블 열의 이름입니다. 이 예제에서 중첩 테이블은 Predict 함수를 호출하고 INCLUDE_STATISTICS 인수를 사용하여 반환됩니다.

TopCount 함수의 두 번째 인수는 결과를 정렬하는 데 사용하는 중첩 테이블의 열입니다. 이 예제에서 INCLUDE_STATISTICS 옵션은 $SUPPORT, $PROBABILTY 및 $ADJUSTED PROBABILITY 열을 반환합니다. 이 예에서는 $SUPPORT를 사용하여 결과의 등급을 지정합니다.

TopCount 함수에 대한 세 번째 인수는 반환할 행 수를 정수로 지정합니다. $SUPPORT 주문한 대로 상위 3개 제품을 얻으려면 3을 입력합니다.

예제 결과:

모델 $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.29... 0.25...
물병 2866 0.19... 0.17...
패치 키트 2113 0.14... 0.13...

그러나 이러한 유형의 쿼리는 프로덕션 설정의 성능에 영향을 줄 수 있습니다. 이는 쿼리가 알고리즘에서 모든 예측 집합을 반환하고, 이러한 예측을 정렬하고, 상위 3을 반환하기 때문입니다.

다음 예제에서는 동일한 결과를 반환하지만 훨씬 더 빠르게 실행되는 대체 문을 제공합니다. 이 예제에서는 TopCount를 많은 예측을 인수로 허용하는 Predict 함수로 바꿉니다. 또한 이 예제에서는 $SUPPORT 키워드를 사용하여 중첩된 테이블 열을 직접 검색합니다.

SELECT Predict ([Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 3, $SUPPORT)  

결과에는 지원 값을 기준으로 정렬된 상위 3개의 예측이 포함됩니다. $SUPPORT $PROBABILITY 또는 $ADJUSTED_PROBABILITY로 바꾸어 확률 또는 조정된 확률로 순위가 지정된 예측을 반환할 수 있습니다. 자세한 내용은 Predict(DMX)를 참조하세요.

참고 항목

함수(DMX)
일반 예측 함수(DMX)
BottomCount(DMX)
TopPercent(DMX)
TopSum(DMX)