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 renvoyé
<expression de table>
Notes
La valeur fournie par l’argument <d’expression> de classement détermine l’ordre décroissant de classement des lignes fournies dans l’argument <d’expression> de table, et le nombre de lignes les plus principales spécifiées dans l’argument <count> est retourné.
La fonction TopCount a été introduite à l’origine pour activer les prédictions associatifs et, en général, produit les mêmes résultats qu’une instruction qui inclut des 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 peut-être toujours utiliser TopCount. Par exemple, DMX ne prend pas en charge le qualificateur TOP dans une instruction de sous-sélection. La fonction PredictHistogram (DMX) ne prend pas 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 didacticiel 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
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 | 4,334 | 0.291283016 | 0.252695851 |
Water Bottle | 2,866 | 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 | 1,195 | 0.080314537 | 0.077173962 |
La fonction TopCount prend les résultats de cette requête et retourne le nombre spécifié de 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 | 4,334 | 0.29... | 0.25... |
Water Bottle | 2,866 | 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 en tant qu’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 Predict (DMX).
Voir aussi
Fonctions (DMX)
Fonctions de prédiction générales (DMX)
BottomCount (DMX)
TopPercent (DMX)
TopSum (DMX)