Condividi tramite


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.