TopCount (DMX)
Gibt die angegebene Anzahl von obersten Zeilen in der durch einen Ausdruck angegebenen absteigenden Rangreihenfolge zurück.
Syntax
TopCount(<table expression>, <rank expression>, <count>)
Betrifft
Ein Ausdruck, der eine Tabelle zurückgibt, z. B. ein Verweis auf eine Tabellenspalte (<table column reference>), oder eine Funktion, die eine Tabelle zurückgibt.
Rückgabetyp
<table expression>
Hinweise
Der Wert, der im <rank expression>-Argument bereitgestellt wird, bestimmt die absteigende Rangreihenfolge für die Zeilen, die im <table expression>-Argument bereitgestellt werden. Es werden so viele oberste Zeilen zurückgegeben, wie durch das <count>-Argument angegeben sind.
Die TopCount-Funktion wurde ursprünglich in SQL Server 2000 eingeführt, um assoziative Vorhersagen zu ermöglichen, und erzeugt im Allgemeinen dieselben Ergebnisse wie eine Anweisung mit einer SELECT TOP-Klausel und einer ORDER BY-Klausel. In SQL Server 2005 und SQL Server 2008 erzielen Sie eine bessere Leistung bei assoziativen Vorhersagen, wenn Sie die Predict (DMX)-Funktion verwenden, die die Angabe einer Anzahl zurückzugebender Vorhersagen unterstützt.
In manchen Situationen müssen Sie möglicherweise dennoch TopCount verwenden. Zum Beispiel unterstützt DMX in einer Unteranweisung von SELECT nicht den TOP-Qualifizierer. Die PredictHistogram (DMX)-Funktion unterstützt zudem nicht das Hinzufügen von TOP.
Beispiele
In den folgenden Beispielen werden Vorhersageabfragen für das Association-Modell erstellt, das Sie mithilfe des Lernprogramm zu Data Mining-Grundlagen erstellt haben. Die Abfragen geben dieselben Ergebnisse zurück, jedoch wird im ersten Beispiel TopCount, im zweiten Beispiel die Predict-Funktion verwendet.
Für eine erste Einführung in die Funktionsweise von TopCount ist es möglicherweise hilfreich, zunächst eine Vorhersageabfrage auszuführen, die lediglich die geschachtelte Tabelle zurückgibt.
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
Hinweis |
---|
In diesem Beispiel enthält der als Eingabe bereitgestellte Wert ein einzelnes Anführungszeichen und muss daher mit Escapezeichen versehen werden, indem ihm ein weiteres einzelnes Anführungszeichen vorangestellt wird. Wenn Sie über die Syntax zum Einfügen von Escapezeichen nicht sicher sind, können Sie den Generator für Vorhersageabfragen verwenden, um die Abfrage zu erstellen. Wenn Sie den Wert aus der Dropdownliste auswählen, wird das erforderliche Escapezeichen automatisch eingefügt. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen einer SINGLETON-Abfrage im Data Mining-Designer. |
Beispielergebnisse:
Model |
$SUPPORT |
$PROBABILITY |
$ADJUSTEDPROBABILITY |
---|---|---|---|
Sport-100 |
4334 |
0.291283016 |
0.252695851 |
Water Bottle |
2866 |
0.192620472 |
0.175205052 |
Patchkit |
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 |
Fahrradkappe |
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 |
Die TopCount-Funktion verwendet die Ergebnisse dieser Abfrage und gibt die festgelegte Anzahl von Zeilen mit den kleinsten Werten zurück.
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
Das erste Argument für die TopCount-Funktion ist der Name einer Tabellenspalte. In diesem Beispiel wird die geschachtelte Tabelle zurückgegeben, indem die Predict-Funktion aufgerufen und das INCLUDE_STATISTICS-Argument verwendet wird.
Das zweite Argument für die TopCount-Funktion ist die Spalte in der geschachtelten Tabelle, die Sie zum Sortieren der Ergebnisse verwenden. In diesem Beispiel gibt die INCLUDE_STATISTICS-Option die Spalten $SUPPORT, $PROBABILTY und $ADJUSTED PROBABILITY zurück. In diesem Beispiel wird $SUPPORT verwendet, um die Ergebnisse in einer Rangfolge zu ordnen.
Das dritte Argument für die TopCount-Funktion gibt die Anzahl der zurückzugebenden Zeilen als ganze Zahl an. Geben Sie 3 ein, um die obersten drei Produkte abzurufen, wie in $SUPPORT sortiert.
Beispielergebnisse:
Modell |
$SUPPORT |
$PROBABILITY |
$ADJUSTEDPROBABILITY |
---|---|---|---|
Sport-100 |
4334 |
0.29… |
0.25… |
Water Bottle |
2866 |
0.19… |
0.17… |
Patchkit |
2113 |
0.14… |
0.13… |
Dieser Typ von Abfrage wirkt sich jedoch möglicherweise auf die Leistung in einer Produktionseinstellung aus. Die Ursache dafür besteht darin, dass die Abfrage einen Satz aller mit dem Algorithmus erstellten Vorhersagen zurückgibt, die Vorhersagen sortiert und die obersten 3 zurückgibt.
Im folgenden Beispiel wird eine alternative Anweisung angegeben, die die gleichen Ergebnisse zurückgibt, aber bedeutend schneller ausgeführt wird. In diesem Beispiel wird [TopCount] durch die [Predict]-Funktion ersetzt, die eine Anzahl von Vorhersagen als Argument akzeptiert. In diesem Beispiel wird auch das Schlüsselwort $SUPPORT verwendet, um die Spalte der geschachtelten Tabelle direkt abzurufen.
SELECT Predict ([Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 3, $SUPPORT)
Die Ergebnisse enthalten die obersten 3 Vorhersagen, nach dem Unterstützungswert sortiert. Sie können $SUPPORT durch $PROBABILITY oder $ADJUSTED_PROBABILITY ersetzen, um nach Wahrscheinlichkeit oder angepasster Wahrscheinlichkeit geordnete Vorhersagen zurückzugeben. Weitere Informationen finden Sie unter Predict (DMX).