TopCount(DMX)
식에서 지정한 수만큼 맨 위 행을 내림차순으로 반환합니다.
구문
TopCount(<table expression>, <rank expression>, <count>)
적용 대상
<table column reference>와 같은 테이블을 반환하는 식 또는 테이블을 반환하는 함수입니다.
반환 형식
<table expression>
주의
<rank expression> 인수가 제공한 값에 따라 <table expression> 인수에 제공된 행의 내림차순이 결정되며 <count> 인수에 지정된 수만큼 맨 위 행이 반환됩니다.
TopCount 함수는 원래 연결 예측을 사용하고 일반적으로 SELECT TOP 및 ORDER BY 절을 포함하는 문으로 동일한 결과를 생성하기 위해 SQL Server 2000에 도입되었습니다. SQL Server 2005 및 SQL Server 2008에서 연결 예측에 대해 더 나은 성능을 얻으려면 Predict (DMX) 함수를 사용하면 됩니다. 이 함수는 많은 예측이 반환되도록 지정할 수 있습니다.
그러나 TopCount를 사용해야 하는 상황이 있을 수 있습니다. 예를 들어 DMX는 하위 선택 문에서 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
[!참고]
이 예에서 입력으로 제공된 값에는 작은따옴표가 들어 있으므로 작은따옴표를 앞에 추가하여 이스케이프해야 합니다. 이스케이프 문자를 삽입하는 구문을 모르는 경우 예측 쿼리 작성기를 사용하여 쿼리를 만들 수 있습니다. 드롭다운 목록에서 값을 선택하면 필요한 이스케이프 문자가 자동으로 삽입됩니다. 자세한 내용은 방법: 데이터 마이닝 디자이너에서 단일 쿼리 작성을 참조하십시오.
예 결과:
Model |
$SUPPORT |
$PROBABILITY |
$ADJUSTEDPROBABILITY |
---|---|---|---|
Sport-100 |
4334 |
0.291283016 |
0.252695851 |
Water Bottle |
2866 |
0.192620472 |
0.175205052 |
Patch kit |
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 |
Fender Set - Mountain |
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을 입력합니다.
예 결과:
Model |
$SUPPORT |
$PROBABILITY |
$ADJUSTEDPROBABILITY |
---|---|---|---|
Sport-100 |
4334 |
0.29… |
0.25… |
Water Bottle |
2866 |
0.19… |
0.17… |
Patch kit |
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)를 참조하십시오.