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)