TopPercent (DMX)

van toepassing op: SQL Server Analysis Services

De TopPercent-functie geeft, in volgorde van afnemende rang, de bovenste rijen van een tabel waarvan het cumulatieve totaal ten minste een gespecificeerd percentage is.

Syntax

  
TopPercent(<table expression>, <rank expression>, <percent>)  

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 TopPercent-functie geeft de bovenste rijen terug in afnemende volgorde van rang op basis van de geëvalueerde waarde van het <rangexpressie-argument> voor elke rij, zodat de som van de waarden van de <rangexpressie> ten minste het gegeven percentage is dat door het <percentage-argument> wordt gespecificeerd. TopPercent levert het kleinst mogelijke aantal elementen op, terwijl toch de gespecificeerde procentwaarde 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 TopPercent-functie neemt de resultaten van deze zoekopdracht en geeft de rijen met de grootste waarden terug die optellen tot het gespecificeerde percentage.

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  

Het eerste argument voor de TopPercent-functie is de naam van een kolom in een tabel. 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 TopPercent-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 $SUPPORT omdat ondersteuningswaarden niet fractioneel zijn en daardoor makkelijker te verifiëren zijn.

Het derde argument van de TopPercent-functie specificeert het percentage, als een dubbel. Om de rijen voor de topproducten te krijgen die samen 50 procent van de totale ondersteuning uitmaken, typ je 50.

Voorbeeldresultaten:

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

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

Warning

De MDX-functies voor TOPPERCENT en BOTTOMPERCENT kunnen onverwachte resultaten genereren wanneer de waarden die worden gebruikt om het percentage te berekenen negatieve getallen bevatten. Dit gedrag heeft geen invloed op de DMX-functies. Voor meer informatie, zie BottomPercent (MDX).