Ga naar hoofdinhoud

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 ([ distinct ] 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.

Was deze pagina nuttig?

Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!

Neem deel aan het Analytics Modernization Program

Remove banner from view

Moderniseer zonder uw waardevolle QlikView-apps op het spel te zetten met het Analytics Modernization Program. Klik hier voor meer informatie of om contact op te nemen: ampquestions@qlik.com