FirstSortedValue - scriptfunctie
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. 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:
Retourgegevenstypen: dual
Argumenten:
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 voor 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 app en voer het uit. Voeg vervolgens ten minste de velden die in de resultatenkolom staan aan een werkblad in onze app toe om het resultaat te bekijken.
Als u dezelfde weergave wilt als in de onderstaande resultatenkolom, schakelt u in het eigenschappenvenster onder Sorteren over van Automatisch naar Aangepast en schakelt u numeriek en alfabetisch sorteren uit.
Voorbeeld | Resultaat |
---|---|
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; |
Customer 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.. |
Stel dat de tabel Temp is geladen zoals in het vorige voorbeeld: LOAD Customer,FirstSortedValue(Product, -UnitSales) as MyProductWithLargestOrderByCustomer Resident Temp Group By Customer; |
Customer 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. |
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; |
Customer 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. |