FirstSortedValue

FirstSortedValue() returnerar ett värde från uttrycket som har angetts under value som motsvarar resultatet av sorteringen av argumentet sort_weight. rank tas med i beräkningen om detta är angivet. Om fler än ett resultatvärde delar samma sort_weight för den angivna rank returnerar funktionen NULL.

Syntax:  

FirstSortedValue([{SetExpression}] [DISTINCT] [TOTAL [<fld {,fld}>]] value, sort_weight [,rank])

Return data type: dual

Arguments:  

Argument Beskrivning
value Utdatafält. Funktionen finner värdet av uttrycket value som motsvarar resultatet vid sortering av sort_weight.
sort_weight

Indatafält. Uttrycket som innehåller data som ska sorteras. Det första (lägsta) värdet i sort_weight hittas, varifrån motsvarande värde i uttrycket value fastställs. Om du sätter ett minustecken framför sort_weight returnerar funktionen det sista (högsta) sorterade värdet i stället.

rank

Genom att ange rank "n" som är större än 1 får du det n:te sorterade värdet.

SetExpression Som standard kommer aggregeringsfunktionen att aggregera över den uppsättning möjliga poster som definierats av urvalet. En alternativ uppsättning poster kan definieras med ett uttryck för set-analys.
DISTINCT Om predikatet DISTINCT förekommer framför funktionsargumenten ignoreras alla dubbletter som evaluerats utifrån funktionsargumenten.
TOTAL

Om ordet TOTAL står före funktionsargumenten görs beräkningen över alla valbara värden givet de aktuella valen, och inte bara sådana som rör det aktuella dimensionsvärdet, det vill säga att diagramdimensionerna ignoreras.

Bestämningen TOTAL kan följas av en lista med ett eller flera fältnamn inom vinkelparenteser <fld>. Dessa fältnamn bör ingå i en underuppsättning av diagrammets dimensionsvariabler.

Definiera aggregeringens omfattning

Examples and results:  

Customer Product UnitSales UnitPrice
Astrida AA 4 16
Astrida AA 10 15
Astrida BB 9 9
Betacab BB 5 10
Betacab CC 2 20
Betacab DD - 25
Canutility AA 8 15
Canutility CC - 19
Exempel Resultat
firstsortedvalue (Product, UnitPrice)

BB, som är en Product med det lägsta UnitPrice(9).

firstsortedvalue (Product, UnitPrice, 2)

BB, som är en Product med det näst lägsta UnitPrice(10).

firstsortedvalue (Customer, -UnitPrice, 2)

Betacab, som är en Customermed den Product som har det nästa högsta UnitPrice(20).

firstsortedvalue (Customer, UnitPrice, 3)

NULL, eftersom det finns två värden för Customer (Astrida och Canutility) med sammarank (tredje lägsta) UnitPrice(15).

Använd kvalificerarendistinct för att försäkra dig om att inga oväntade null-resultat uppstår.

firstsortedvalue (Customer, -UnitPrice*UnitSales, 2)

Canutility, vilket är Customer med det näst högsta säljordervärdet UnitPrice multiplicerat med UnitSales (120).

Data som används i exempel:

ProductData:

LOAD * inline [

Customer|Product|UnitSales|UnitPrice

Astrida|AA|4|16

Astrida|AA|10|15

Astrida|BB|9|9

Betacab|BB|5|10

Betacab|CC|2|20

Betacab|DD||25

Canutility|AA|8|15

Canutility|CC||19

] (delimiter is '|');