共用方式為


TopCount (DMX)

適用於: SQL Server Analysis Services

傳回指定數目的最上層數據列,依運算式所指定的順序遞減。

語法

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

套用至

傳回數據表的表示式,例如 <數據表數據行參考>,或傳回數據表的函式。

傳回類型

<數據表表達式>

備註

排名表達式自變數提供<的值會決定數據表運算式>>自變數中提供之數據列的遞減順序,以及傳回 count> 自變數中指定的<<最上層數據列數目。

TopCount 函式原本是為了啟用關聯預測而引進的,一般會產生與包含 SELECT TOPORDER BY 子句的語句相同的結果。 如果您使用 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  

注意

在此範例中,提供做為輸入的值包含單引號,因此必須以另一個單引號開頭加以逸出。 如果您不確定插入逸出字元的語法,您可以使用預測查詢產生器來建立查詢。 當您從下拉式清單中選取值時,會為您插入必要的逸出字元。 如需詳細資訊,請參閱 在數據採礦設計師中建立單一查詢。

範例結果︰

模型 $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
運動-100 4334 0.291283016 0.252695851
水瓶 2866 0.192620472 0.175205052
修補程式套件 2113 0.142012232 0.132389356
登山車輪內胎 1992 0.133879965 0.125304948
Mountain-200 1755 0.117951475 0.111260823
Road Tire Tube 1588 0.106727603 0.101229538
自行車帽 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。

範例結果︰

模型 $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
運動-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 個預測。 您可以使用 $PROBABILITY 或 $ADJUSTED_PROBABILITY 取代$SUPPORT,以傳回依機率或調整的機率排名的預測。 如需詳細資訊,請參閱 Predict (DMX)

另請參閱

函式 (DMX)
一般預測函數 (DMX)
BottomCount (DMX)
TopPercent (DMX)
TopSum (DMX)