FirstSortedValue - diagramfunctie
FirstSortedValue() retourneert de waarde van de uitdrukking die is opgegeven in value die overeenkomt met het resultaat van het sorteren van sort_weight-argument, bijvoorbeeld de naam van het product met de laagste prijs per eenheid. U kunt de nde waarde in de sorteervolgorde opgeven in rank. Als meer dan één uitkomst dezelfde sort_weight voor de opgegeven rank deelt, retourneert de functie NULL.
Syntaxis:
FirstSortedValue([{SetExpression}] [DISTINCT] [TOTAL [<fld {,fld}>]] value, sort_weight [,rank])
Retourgegevenstypen: dual
Argumenten:
Argument | Beschrijving |
---|---|
value | Uitvoerveld. De functie vindt de waarde van de uitdrukking value die overeenkomt met het resultaat van de sortering sort_weight. |
sort_weight |
Invoerveld. De uitdrukking die de gegevens bevat die moeten worden gesorteerd. De eerste (laagste) waarde van sort_weight wordt gevonden, op basis waarvan de overeenkomstige waarde van de uitdrukking value wordt bepaald. Als u een minteken vóór sort_weight plaatst, retourneert de functie de laatste (hoogste) gesorteerde waarde. |
rank |
Door een rank "n" op te geven die groter is dan 1, krijgt u de n-de gesorteerde waarde. |
SetExpression | De aggregatiefunctie aggregeert standaard over de set mogelijke records die wordt gedefinieerd door de selectie. Met de uitdrukking Set-analyse kunt u een alternatieve set records definiëren. |
DISTINCT | Als het woord DISTINCT voor de argumenten van de functie wordt geplaatst, worden duplicaten die het resultaat zijn van de evaluatie van de argumenten van de functie genegeerd. |
TOTAL |
Als het woord TOTAL voor de functieargumenten staat, wordt de berekening gemaakt op basis van alle mogelijke waarden bij de huidige selecties, en niet alleen de selecties die betrekking hebben op de huidige dimensiewaarde. Dit betekent dat de dimensies van het diagram worden genegeerd. Wanneer u TOTAL [<fld {.fld}>] gebruikt en de TOTAL-kwalificatie wordt gevolgd door een lijst van één of meer veldnamen als subset van de dimensievariabelen van het diagram, maakt u een subset van de totale mogelijke waarden. |
Voorbeelden en resultaten:
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 |
Voorbeeld | Resultaat |
---|---|
firstsortedvalue (Product, UnitPrice) |
BB, oftewel het Product met de laagste UnitPrice(9). |
firstsortedvalue (Product, UnitPrice, 2) |
BB, oftewel het Product met de op één na laagste UnitPrice(10). |
firstsortedvalue (Customer, -UnitPrice, 2) |
Betacab, oftewel de Customer met het Product met de op één na hoogste UnitPrice(20). |
firstsortedvalue (Customer, UnitPrice, 3) |
NULL, omdat er twee waarden van Customer (Astrida en Canutility) zijn met dezelfde rank (op twee na laagste) UnitPrice(15). U kunt met de kwalificatie distinct ervoor zorgen dat er geen onverwachte null-resultaten optreden. |
firstsortedvalue (Customer, -UnitPrice*UnitSales, 2) |
Canutility, oftewel de Customer met de op één na hoogste UnitPrice voor verkooporderwaarde vermenigvuldigd met de UnitSales (120). |
Gegevens die worden gebruikt in voorbeelden:
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 '|');