Partager via


TopPercent (DMX)

S’applique à : SQL Server Analysis Services

La fonction TopPercent retourne, dans l’ordre décroissant, les lignes les plus principales d’une table dont le total cumulé est au moins un pourcentage spécifié.

Syntaxe

  
TopPercent(<table expression>, <rank expression>, <percent>)  

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 renvoyé

<expression de table>

Notes

La fonction TopPercent retourne les lignes les plus élevées dans l’ordre décroissant du classement en fonction de la valeur évaluée de l’argument <d’expression> de classement pour chaque ligne, de sorte que la somme des valeurs d’expression> de <classement est au moins le pourcentage donné spécifié par l’argument <pourcentage>. TopPercent retourne le plus petit nombre d’éléments possibles tout en répondant à la valeur de pourcentage spécifiée.

Exemples

L’exemple suivant crée une requête de prédiction sur le modèle Association que vous générez à l’aide du didacticiel d’exploration de données de base.

Pour comprendre le fonctionnement de TopPercent, 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  

Remarque

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 Concepteur 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 I367 0.091874454 0.087780332
Road Bottle Cage 1195 0.080314537 0.077173962

La fonction TopPercent prend les résultats de cette requête et retourne les lignes avec les valeurs les plus élevées qui correspondent au pourcentage spécifié.

SELECT   
TopPercent  
    (  
    Predict ([Association].[v Assoc Seq Line Items],INCLUDE_STATISTICS,10),  
    $SUPPORT,  
    50)  
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 TopPercent 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 TopPercent 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 car les valeurs de support ne sont pas fractionnaires et sont donc plus faciles à vérifier.

Le troisième argument de la fonction TopPercent spécifie le pourcentage, sous la forme d’un double. Pour obtenir les lignes des produits principaux dont la somme est égale à 50 pour cent du support total, tapez 50.

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...
Mountain Tire Tube 1992 0.133... 0.12...

Notez que cet exemple est fourni uniquement pour illustrer l’utilisation de TopPercent. L'exécution de cette requête peut prendre beaucoup de temps, en fonction de la taille de votre jeu de données.

Avertissement

Les fonctions MDX pour TOPPERCENT et BOTTOMPERCENT peuvent générer des résultats inattendus lorsque les valeurs utilisées pour calculer le pourcentage incluent les nombres négatifs. Ce comportement n'affecte pas les fonctions DMX. Pour plus d’informations, consultez BottomPercent (MDX).

Voir aussi

Informations de référence sur les fonctions DMX (Data Mining Extensions)
Fonctions (DMX)
Fonctions de prédiction générales (DMX)