TopCount (DMX)

S’applique à :SQL Server Analysis Services

Retourne le nombre spécifié de lignes les plus hautes dans l'ordre décroissant, comme indiqué par une expression.

Syntaxe

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

S'applique à

Expression qui retourne une table, telle qu’une <référence> de colonne de table, ou une fonction qui retourne une table.

Type de retour

<Expression de table>

Notes

La valeur fournie par l’argument <d’expression> de classement détermine l’ordre décroissant du rang pour les lignes fournies dans l’argument <d’expression> de table, et le nombre de lignes supérieures spécifiées dans l’argument <count> est retourné.

La fonction TopCount a été introduite à l’origine pour activer les prédictions associatives et, en général, produit les mêmes résultats qu’une instruction qui inclut les clauses SELECT TOP et ORDER BY . Vous obtiendrez de meilleures performances pour les prédictions associatives si vous utilisez la fonction Predict (DMX), qui prend en charge la spécification d’un certain nombre de prédictions à retourner.

Toutefois, il existe des situations où vous devrez toujours utiliser TopCount. Par exemple, DMX ne prend pas en charge le qualificateur TOP dans une instruction sub-select. La fonction PredictHistogram (DMX) ne prend pas non plus en charge l’ajout de TOP.

Exemples

Les exemples suivants sont des requêtes de prédiction sur le modèle d’association que vous générez à l’aide du tutoriel d’exploration de données de base. Les requêtes retournent les mêmes résultats, mais le premier exemple utilise TopCount et le deuxième exemple utilise la fonction Predict.

Pour comprendre le fonctionnement de TopCount, il peut être utile d’exécuter d’abord une requête de prédiction qui retourne uniquement la table imbriquée.

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  

Notes

Dans cet exemple, la valeur fournie en tant qu'entrée contient un guillemet simple et doit donc être placée dans une séquence d'échappement en la préfaçant avec un autre guillemet simple. Si vous n'êtes pas certain de la syntaxe permettant d'insérer un caractère d'échappement, vous pouvez utiliser le Générateur de requêtes de prédiction pour créer la requête. Lorsque vous sélectionnez la valeur dans la liste déroulante, le caractère d'échappement requis est inséré pour vous. Pour plus d’informations, consultez Créer une requête Singleton dans le Designer d’exploration de données.

Résultats de l'exemple :

Modèle $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

La fonction TopCount prend les résultats de cette requête et retourne le nombre spécifié des lignes les plus petites.

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  

Le premier argument de la fonction TopCount est le nom d’une colonne de table. Dans cet exemple, la table imbriquée est retournée en appelant la fonction Predict et en utilisant l’argument INCLUDE_STATISTICS.

Le deuxième argument de la fonction TopCount est la colonne de la table imbriquée que vous utilisez pour classer les résultats. Dans cet exemple, l'option INCLUDE_STATISTICS retourne les colonnes $SUPPORT, $PROBABILTY et $ADJUSTED PROBABILITY. Cet exemple utilise $SUPPORT pour classer les résultats.

Le troisième argument de la fonction TopCount spécifie le nombre de lignes à retourner, sous forme d’entier. Pour obtenir les trois produits supérieurs, tel que classé par $SUPPORT, tapez 3.

Résultats de l'exemple :

Modèle $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.29... 0.25...
Water Bottle 2866 0.19... 0.17...
Patch kit 2113 0.14... 0.13...

Toutefois, ce type de requête peut affecter les performances dans un environnement de production. Cela est dû au fait que la requête retourne un ensemble de toutes les prédictions de l'algorithme, trie ces prédictions et retourne les 3 prédictions supérieures.

L'exemple suivant fournit une autre instruction qui retourne les mêmes résultats mais s'exécute beaucoup plus rapidement. Cet exemple remplace TopCount par la fonction Predict, qui accepte un certain nombre de prédictions comme argument. Cet exemple utilise également le mot clé $SUPPORT pour récupérer directement la colonne de table imbriquée.

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

Les résultats contiennent les 3 prédictions supérieures triées par la valeur de support. Vous pouvez remplacer $SUPPORT par $PROBABILITY ou $ADJUSTED_PROBABILITY pour retourner des prédictions classées par probabilité ou par probabilité ajustée. Pour plus d’informations, consultez Prédire (DMX).

Voir aussi

Fonctions (DMX)
Fonctions de prédiction générales (DMX)
BottomCount (DMX)
TopPercent (DMX)
TopSum (DMX)