TopPercent (DMX)
La funzione TopPercent restituisce, in ordine di rango decrescente, le prime righe di una tabella il cui totale cumulativo corrisponde almeno a una percentuale specificata.
Sintassi
TopPercent(<table expression>, <rank expression>, <percent>)
Si applica a
Espressione che restituisce una tabella, come <table column reference> oppure una funzione che restituisce una tabella.
Tipo restituito
<espressione di tabella>
Osservazioni
La funzione TopPercent restituisce le prime righe in ordine di rango decrescente, in base al valore valutato dell'argomento <rank expression> per ogni riga, di modo che la somma dei valori di <rank expression> corrisponda almeno alla percentuale specificata dall'argomento <percent>. TopPercent restituisce il numero più piccolo di elementi che permette di raggiungere il valore percentuale specificato.
Esempi
Nell'esempio seguente viene creata una query di stima sul modello di associazione creato mediante l'Esercitazione di base sul data mining.
Per comprendere il funzionamento di TopPercent, può risultare 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 ulteriori informazioni, vedere Procedura: Creazione di una query singleton nella Progettazione modelli di data mining.
Risultati dell'esempio:
Model |
$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 TopPercent utilizza i risultati di questa query e restituisce le righe con i valori più grandi che vengono sommate alla percentuale specificata.
SELECT
TopPercent
(
Predict ([Association].[v Assoc Seq Line Items],INCLUDE_STATISTICS,10),
$SUPPORT,
50)
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 TopPercent è il nome di una colonna della tabella. In questo esempio la tabella nidificata viene restituita chiamando la funzione Predict e utilizzando l'argomento INCLUDE_STATISTICS.
Il secondo argomento della funzione TopPercent è la colonna della tabella nidificata utilizzata 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 poiché i valori di supporto non sono frazionari e pertanto sono più facili da verificare.
Il terzo argomento della funzione TopPercent specifica la percentuale, come valore Double. Per ottenere le righe dei primi prodotti che rappresentano il 50 percento del supporto totale, digitare 50.
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… |
Mountain Tire Tube |
1992 |
0.133… |
0.12… |
Nota Questo esempio è fornito solo per illustrare l'utilizzo di TopPercent. A seconda della dimensione dell'insieme di dati, questa query potrebbe impiegare molto tempo per l'esecuzione.