TopSum (DMX)
Restituisce, in ordine di rango decrescente, le prime righe di una tabella il cui totale cumulativo corrisponde almeno a un valore specificato.
Sintassi
TopSum(<table expression>, <rank expression>, <sum>)
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 TopSum restituisce le righe più in alto in ordine decrescente di rango sul valore valutato dell'argomento <rank expression> per ogni riga, di modo che la somma dei valori di <rank expression> corrisponde almeno al totale specificato dall'argomento <sum>. TopSum restituisce il più piccolo numero di elementi possibile mentre soddisfa ancora il valore della somma specificata.
Esempi
Nell'esempio seguente viene creata una query di stima sul modello di associazione compilato 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 Creare una query singleton in 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 TopSum utilizza i risultati di questa query e restituisce le righe con i valori più grandi che vengono sommate al numero specificato.
SELECT
TopSum
(
Predict([Association].[v Assoc Seq Line Items],INCLUDE_STATISTICS,10),
$PROBABILITY,
.5)
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 TopSum è 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 TopSum è 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. Viene utilizzato $ PROBABILITY per restituire le righe che rappresentano almeno la probabilità del 50%.
Il terzo argomento della funzione TopSum specifica la somma di destinazione, come valore Double. Per ottenere le righe dei primi prodotti che rappresentano il 50 percento di probabilità, digitare .5.
Risultati dell'esempio:
Model |
$SUPPORT |
$PROBABILITY |
$ADJUSTEDPROBABILITY |
---|---|---|---|
Sport-100 |
4334 |
0.29… |
0.25… |
Water Bottle |
2866 |
0.19… |
0.17… |
Patch kit |
2113 |
0.14… |
0.13… |
Nota Questo esempio è fornito solo per illustrare l'utilizzo di [TopSum]. A seconda della dimensione del set di dati, questa query potrebbe impiegare molto tempo per l'esecuzione.