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])
Returnerad datatyp: dual
Argument:
- 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.
Exempel:
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 '|');
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 |