TopCount (DMX)

Si applica a: SQL Server Analysis Services

Restituisce il numero specificato di righe a partire dall'alto, in ordine di rango decrescente secondo quanto specificato da una determinata espressione.

Sintassi

  
TopCount(<table expression>, <rank expression>, <count>)  

Si applica a

Espressione che restituisce una tabella, ad esempio un riferimento> a una <colonna di tabella o una funzione che restituisce una tabella.

Tipo restituito

<espressione di tabella>

Osservazioni:

Il valore fornito dall'argomento dell'espressione <> di classificazione determina l'ordine decrescente di rango per le righe fornite nell'argomento dell'espressione><di tabella e viene restituito il numero di righe più in alto specificate nell'argomento <count>.

La funzione TopCount è stata originariamente introdotta per abilitare le stime associative e in generale produce gli stessi risultati di un'istruzione che include clausole SELECT TOP e ORDER BY . Si otterranno prestazioni migliori per le stime associative se si usa la funzione Predict (DMX), che supporta la specifica di una serie di stime da restituire.

Tuttavia, in alcune situazioni potrebbe essere comunque necessario usare TopCount. Ad esempio, DMX non supporta il qualificatore TOP in un'istruzione sub-select. La funzione PredictHistogram (DMX) non supporta anche l'aggiunta di TOP.

Esempi

Gli esempi seguenti sono query di stima sul modello Association compilate tramite l'esercitazione di base sul data mining. Le query restituiscono gli stessi risultati, ma il primo esempio usa TopCount e il secondo esempio usa la funzione Predict.

Per comprendere il funzionamento di TopCount, può essere utile eseguire prima una query di stima che restituisca solo la tabella nidificata.

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  

Nota

In questo esempio il valore fornito come input contiene una virgoletta singola, e pertanto è necessario utilizzare il carattere di escape preceduto da un'altra virgoletta singola. Se non si è certi della sintassi per l'inserimento di un carattere di escape, è possibile utilizzare il generatore delle query di stima per creare la query. Quando si seleziona il valore dall'elenco a discesa, viene automaticamente inserito il carattere di escape necessario. Per altre informazioni, vedere Creare una query Singleton in Progettazione modelli di data mining.

Risultati dell'esempio:

Modello $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 funzione TopCount accetta i risultati di questa query e restituisce il numero specificato di righe con valori minimi.

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  

Il primo argomento della funzione TopCount è il nome di una colonna di tabella. In questo esempio la tabella nidificata viene restituita chiamando la funzione Predict e usando l'argomento INCLUDE_STATISTICS.

Il secondo argomento della funzione TopCount è la colonna nella tabella nidificata usata per ordinare i risultati. In questo esempio l'opzione INCLUDE_STATISTICS restituisce le colonne $SUPPORT, $PROBABILTY e $ADJUSTED PROBABILITY. In questo esempio viene utilizzato $ SUPPORT per classificare i risultati.

Il terzo argomento della funzione TopCount specifica il numero di righe da restituire, come numero intero. Per ottenere i primi tre prodotti, come ordinato da $SUPPORT, digitare 3.

Risultati dell'esempio:

Modello $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.29... 0.25...
Water Bottle 2866 0.19... 0.17...
Patch kit 2113 0.14... 0.13...

Tuttavia, questo tipo di query può influire sulle prestazioni nell'impostazione di un ambiente di produzione perché restituisce un set di tutte le stime dall'algoritmo, ordina queste stime e restituisce le prime tre.

Nell'esempio seguente viene fornita un'istruzione alternativa che restituisce gli stessi risultati ma in modo significativamente più veloce. Questo esempio sostituisce TopCount con la funzione Predict, che accetta una serie di stime come argomento. In questo esempio viene usata anche la parola chiave $SUPPORT per recuperare direttamente la colonna della tabella nidificata.

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

I risultati contengono le prime tre stime ordinate in base al valore di supporto. È possibile sostituire $SUPPORT con $PROBABILITY o $ADJUSTED_PROBABILITY per restituire stime classificate in base alla probabilità o alla probabilità adattata. Per altre informazioni, vedere Predict (DMX).

Vedi anche

Funzioni (DMX)
Funzioni di stima correlate (DMX)
BottomCount (DMX)
TopPercent (DMX)
TopSum (DMX)