TopPercent (DMX)

La fonction TopPercent retourne, dans l'ordre décroissant, les lignes de premier niveau d'une table dont le total cumulé est au moins égal au pourcentage spécifié.

Syntaxe

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

Application

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

Type de valeur renvoyé

<expression de table>

Notes

La fonction TopPercent retourne les lignes de premier niveau dans l'ordre décroissant en fonction de la valeur évaluée de l'argument <rank expression> pour chaque ligne, de telle sorte que la somme des valeurs <rank expression> soit au moins égale au pourcentage spécifié par l'argument <percent>. TopPercent retourne le plus petit nombre d'éléments possible tout en correspondant à la valeur de pourcentage spécifiée.

Exemple

L'exemple suivant crée une requête de prédiction sur le modèle d'association que vous concevez à l'aide du Didacticiel sur l'exploration de données de base.

Pour comprendre comment TopPercent fonctionne, il peut s'avérer utile d'exécuter en premier lieu 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 Procédure : créer une requête singleton dans le Concepteur d'exploration de données.

Résultats de l'exemple :

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

La fonction TopPercent prend les résultats de cette requête et retourne les lignes à valeur la plus élevée dont la somme est égale 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 pour la fonction TopPercent est la colonne dans 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, en tant que valeur « 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…

Remarque   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.