TopCount (DMX)
適用於: SQL Server Analysis Services
傳回指定數目的最上層數據列,依運算式所指定的順序遞減。
語法
TopCount(<table expression>, <rank expression>, <count>)
套用至
傳回數據表的表示式,例如 <數據表數據行參考>,或傳回數據表的函式。
傳回類型
<數據表表達式>
備註
排名表達式自變數提供<的值會決定數據表運算式>>自變數中提供之數據列的遞減順序,以及傳回 count> 自變數中指定的<<最上層數據列數目。
TopCount 函式原本是為了啟用關聯預測而引進的,一般會產生與包含 SELECT TOP 和 ORDER 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)