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 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 al totale specificato dall'argomento <sum>. TopSum restituisce il più piccolo numero di elementi che permette di raggiungere il valore totale specificato.
Esempi
Nell'esempio seguente viene creata una query di stima sul modello di associazione creato mediante Esercitazione di base sul data mining.
Per comprendere il funzionamento di TopSum, può risultare utile eseguire 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 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:
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… |
[!NOTA]
Questo esempio è fornito solo per illustrare l'utilizzo di [TopSum]. A seconda della dimensione del set di dati, l'esecuzione di questa query potrebbe richiedere molto tempo.