TopSum (DMX)

van toepassing op: SQL Server Analysis Services

Geeft op, in volgorde van afnemende rang, de bovenste rijen van een tabel waarvan het cumulatieve totaal ten minste een gespecificeerde waarde is.

Syntax

  
TopSum(<table expression>, <rank expression>, <sum>)  

Van toepassing op

Een expressie die een tabel teruggeeft, zoals een kolomreferentie> in de <tabel, of een functie die een tabel teruggeeft.

Retourtype

<Tabeluitdrukking>

Remarks

De TopSum-functie geeft de bovenste rijen terug in dalende volgorde van rang op basis van de geëvalueerde waarde van het <rangexpressieargument> voor elke rij, zodanig dat de som van de <rangexpressiewaarden> ten minste het gegeven totaal is dat door het <somargument> wordt gespecificeerd. TopSum levert het kleinst mogelijke aantal elementen terug, terwijl toch de gespecificeerde somwaarde wordt gehaald.

Examples

Het volgende voorbeeld maakt een voorspellingsquery aan tegen het Association-model dat je bouwt met behulp van de Basic Data Mining Tutorial.

Om te begrijpen hoe TopPercent werkt, kan het nuttig zijn om eerst een voorspellingsquery uit te voeren die alleen de geneste tabel teruggeeft.

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  

Note

In dit voorbeeld bevat de als invoer gegeven waarde één aanhalingsteken, en moet daarom worden omzeild door deze vooraf te zetten met een ander aanhalingsteken. Als je niet zeker bent van de syntaxis voor het invoegen van een escape-teken, kun je de Prediction Query Builder gebruiken om de query te maken. Wanneer je de waarde uit de dropdownlijst selecteert, wordt het vereiste escape-teken voor je ingevoegd. Voor meer informatie, zie Create a Singleton Query in de Data Mining Designer.

Voorbeeldresultaten:

Model $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.291283016 0.252695851
Waterfles 2866 0.192620472 0.175205052
Patchkit 2113 0.142012232 0.132389356
Mountainbike binnenband 1992 0.133879965 0.125304948
Mountain-200 1755 0.117951475 0.111260823
Binnenband voor wegbanden 1588 0.106727603 0.101229538
Wielerpet 1473 0.098998589 0.094256014
Fender Set - Berg 1415 0.095100477 0.090718432
Mountainbikefleshouder 1367 0.091874454 0.087780332
Road Bottle Cage 1195 0.080314537 0.077173962

De TopSum-functie neemt de resultaten van deze query en geeft de rijen met de grootste waarden terug die optellen tot het opgegeven aantal.

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  

Het eerste argument voor de TopSum-functie is de naam van een tabelkolom. In dit voorbeeld wordt de geneste tabel teruggegeven door de Predict-functie aan te roepen en het argument INCLUDE_STATISTICS te gebruiken.

Het tweede argument van de TopSum-functie is de kolom in de geneste tabel die je gebruikt om de resultaten te ordenen. In dit voorbeeld geeft de INCLUDE_STATISTICS optie de kolommen $SUPPORT, $PROBABILITY en $ADJUSTED PROBABILITY terug. Dit voorbeeld gebruikt $PROBABILITY om rijen terug te geven die optellen tot minstens 50% waarschijnlijkheid.

Het derde argument van de TopSum-functie specificeert de doelsom als een dubbel. Om de rijen voor de topproducten te krijgen die optellen tot 50 procent waarschijnlijkheid, typ je 0,5.

Voorbeeldresultaten:

Model $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.29... 0.25...
Waterfles 2866 0.19... 0.17...
Patchkit 2113 0.14... 0.13...

Noot Dit voorbeeld wordt alleen gegeven om het gebruik van TopSum te illustreren. Afhankelijk van de omvang van je dataset kan het lang duren voordat deze query wordt uitgevoerd.