# FirstSortedValue - scriptfunctie

FirstSortedValue() retourneert de waarde van de uitdrukking die is opgegeven in value en die overeenkomt met het resultaat van het sorteren van het argument sort\_weight, waarbij rekening wordt gehouden met rank, indien opgegeven. Als meer dan één uitkomst dezelfde sort\_weight voor de opgegeven rank deelt, retourneert de functie NULL.

De gesorteerde waarden worden herhaald over een aantal records, zoals is vastgelegd door een group by-clausule, of geaggregeerd over een volledige gegevensverzameling als er geen group by-clausule is gedefinieerd.

Syntaxis:

FirstSortedValue (FirstSortedValue ([ distinctdistinct ] value, sort-weight [, rank ] ] value, sort-weight [, rank ]))

Retourgegevenstypen: dual

Argumenten:

Argumenten eerst gesorteerde waarde

| Argument | Beschrijving |
| --- | --- |
| value Expression | De functie vindt de waarde van de uitdrukking value die overeenkomt met het resultaat van de sortering sort\_weight. |
| sort-weight Expression | 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 Expression | Door een rank "n" op te geven die groter is dan 1, krijgt u de n-de gesorteerde waarde. |
| distinct | Als het woord DISTINCT vóór de argumenten van de functie wordt geplaatst, worden duplicaten die het resultaat zijn van de evaluatie van de argumenten van de functie, genegeerd. |

Voorbeelden en resultaten:

Voeg het voorbeeldscript toe aan uw document en voer dit uit. Voeg vervolgens ten minste de velden die in de resultatenkolom staan aan een werkblad in ons document toe om het resultaat te bekijken.

Voorbeeld 1:

`Temp:`

`LOAD * inline [` `Customer|Product|OrderNumber|UnitSales|CustomerID` `Astrida|AA|1|10|1` `Astrida|AA|7|18|1` `Astrida|BB|4|9|1` `Astrida|CC|6|2|1` `Betacab|AA|5|4|2` `Betacab|BB|2|5|2` `Betacab|DD|12|25|2` `Canutility|AA|3|8|3` `Canutility|CC|13|19|3` `Divadip|AA|9|16|4` `Divadip|AA|10|16|4` `Divadip|DD|11|10|4` `] (delimiter is '|');` ` ` `FirstSortedValue:` `LOAD  Customer,FirstSortedValue(Product, UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;
`

Resultaten voorbeeld 1

| Resultaatveld (Customer) | Resultaatwaarde (MyProductWithSmallestOrderByCustomer) |
| --- | --- |
| Astrida | CC |
| Betacab | AA |
| Canutility | AA |
| Divadip | DD |

De functie sorteert UnitSales van kleinst naar grootst, en zoekt daarbij de waarde van Customer met de kleinste waarde van UnitSales, de kleinste bestelling.

Omdat CC overeenkomst met de kleinste bestelling (waarde van UnitSales=2) voor klant Astrida. AA komt overeen met de kleinste bestelling (4) voor klant Betacab, AA komt overeen met de grootste bestelling (8) voor klant Canutility en DD komt overeen met de grootste bestelling (10) voor klant Divadip.

Voorbeeld 2:

Stel dat de tabel Temp is geladen zoals in het vorige voorbeeld:

`LOAD  Customer,FirstSortedValue(Product, -UnitSales) as MyProductWithLargestOrderByCustomer Resident Temp Group By Customer;`

Resultaten voorbeeld 2

| Resultaatveld (Customer) | Resultaatwaarde (MyProductWithLargestOrderByCustomer) |
| --- | --- |
| Astrida | AA |
| Betacab | DD |
| Canutility | CC |
| Divadip | - |

Er staat een minteken voor het argument sort\_weight, dus de functie sorteert de grootste eerst.

Omdat AA overeenkomt met de grootste bestelling (waarde van UnitSales:18) voor klant Astrida, DD overeenkomt met de grootste bestelling (12) voor klant Betacab en CC overeenkomt met de grootste bestelling (13) voor klant Canutility. Er zijn twee identieke waarden voor de grootste bestelling (16) voor klant Divadip, dus dit resulteert in een null-waarde.

Voorbeeld 3:

Stel dat de tabel Temp is geladen zoals in het vorige voorbeeld:

`LOAD  Customer,FirstSortedValue(distinct Product, -UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;`

Resultaten voorbeeld 3

| Resultaatveld (Customer) | Resultaatwaarde (MyProductWithLargestOrderByCustomer) |
| --- | --- |
| Astrida | AA |
| Betacab | DD |
| Canutility | CC |
| Divadip | AA |

Dit is hetzelfde als het vorige voorbeeld, behalve dat de kwalificatie distinct is gebruikt. Dit veroorzaakt een dubbel resultaat voor Divadip dat kan worden genegeerd, wat een null-waarde retourneert.