TopCount (DMX)

Gibt die durch einen Ausdruck angegebene Anzahl von obersten Zeilen in absteigender 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 die gleichen Ergebnisse wie eine Anweisung zu liefern, die die SELECT TOP-Klausel und ORDER BY-Klausel enthält. In SQL Server 2005 und SQL Server 2008 erzielen Sie bei assoziativen Vorhersagen eine bessere Leistung, indem Sie die Predict (DMX)-Funktion verwenden. In dieser können mehrere zurückzugebende Vorhersagen spezifiziert werden. 

In einigen Situationen empfiehlt sich jedoch weiterhin die Verwendung von TopCount. DMX unterstützt beispielsweise nicht den TOP-Qualifizierer in einer untergeordneten SELECT-Anweisung. Darüber hinaus unterstützt die PredictHistogram (DMX)-Funktion nicht das Hinzufügen von TOP.

Beispiele

In den folgenden Beispielen werden Vorhersageabfragen für das Association-Modell erstellt, das Sie im Lernprogramm zu Data Mining-Grundlagen erstellt haben. Die Abfragen geben die gleichen Ergebnisse zurück, im ersten Beispiel wird jedoch TopCount und im zweiten Beispiel die Predict-Funktion verwendet.

Für eine 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
HinweisHinweis

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 angegebene Anzahl von Zeilen mit 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 werden die Ergebnisse mithilfe von $SUPPORT sortiert.

Das dritte Argument der TopCount-Funktion gibt die Anzahl der zurückzugebenden Zeilen als eine ganze Zahl an. Für die obersten drei Produkte, sortiert nach $ SUPPORT, geben Sie 3 ein.

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 Abfragetyp kann jedoch die Leistung in einer Produktionseinstellung beeinträchtigen. Das liegt daran, dass die Abfrage einen Satz aller Vorhersagen für den Algorithmus zurückgibt, diese Vorhersagen sortiert und die obersten 3 Vorhersagen zurückgibt.

Das folgende Beispiel enthält eine alternative Anweisung, die die gleichen Ergebnisse zurückgibt, aber bedeutend schneller ausgeführt wird. In diesem Beispiel wird TopCount durch die Predict-Funktion ersetzt, die eine Reihe von Vorhersagen als Argument zulässt. Darüber hinaus wird in diesem Beispiel die geschachtelte Tabellenspalte mithilfe des $SUPPORT-Schlüsselworts direkt abgerufen.

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

Die Ergebnisse enthalten die obersten 3 Vorhersagen sortiert nach dem Unterstützungswert. Sie können $SUPPORT durch $PROBABILITY oder $ADJUSTED_PROBABILITY ersetzen, um nach Wahrscheinlichkeit oder angepasster Wahrscheinlichkeit sortierte Vorhersagen zurückzugeben. Weitere Informationen finden Sie unter Predict (DMX).