Accéder au contenu principal

FirstSortedValue - fonction de script

FirstSortedValue() renvoie la valeur provenant de l'expression spécifiée dans value qui correspond au résultat du tri de l'argumentsort_weight, en tenant compte de la fonction de rang rank (si précisée). Si plusieurs valeurs résultantes partagent le même champ sort_weight pour la fonction rank spécifiée, la fonction renvoie la valeur NULL.

Les valeurs sont itérées sur un nombre d'enregistrements définis par une clause group by ou agrégées sur l'ensemble de données entier si aucune clause group by n'a été définie.

 

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

double

 

Arguments FirstSortedValue
Argument Description
value Expression La fonction détermine la valeur de l'expression value correspondant au résultat du tri du champ sort_weight.
sort-weight Expression Expression contenant les données à trier. La première valeur (la plus faible) de sort_weight est identifiée, ce qui permet de déterminer la valeur correspondante de l'expression value. Si vous placez un signe moins devant sort_weight, la fonction renvoie alors la dernière valeur triée (la plus élevée).
rank Expression

Si vous spécifiez une valeur rank "n" supérieure à 1, vous obtenez la nième valeur triée.

distinct

Si le terme DISTINCT précède les arguments de la fonction, les doublons résultant de l'évaluation des arguments de la fonction sont ignorés.

 

Ajoutez l'exemple de script à votre document et exécutez-le. Ensuite, ajoutez au moins les champs répertoriés dans la colonne des résultats à une feuille de votre document afin de visualiser le résultat.

 

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;

 

Résultats de l'exemple 1
Champ de résultat (Customer) Valeur de résultat (MyProductWithSmallestOrderByCustomer)
Astrida CC
Betacab AA
Canutility AA
Divadip DD

La fonction trie la colonne UnitSales de la plus petite à la plus grande valeur, recherchant la valeur de l'entrée Customer dotée de la plus petite valeur UnitSales, la plus petite commande.

Car CC correspond à la plus petite commande (valeur de UnitSales=2) pour le client Astrida. AA correspond à la plus petite commande (4) du client Betacab, AA correspond à la plus petite commande (8) du client Canutility et DD correspond à la plus petite commande (10) du client Divadip.

 

Supposons que la table Temp est chargée comme dans l'exemple précédent :

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

 

Résultats de l'exemple 2
Champ de résultat (Customer) Valeur de résultat (MyProductWithLargestOrderByCustomer)
Astrida AA
Betacab DD
Canutility CC
Divadip -

Comme un signe moins précède l'argument sort_weight, la fonction trie les valeurs les plus grandes en premier.

Car AA correspond à la plus grande commande (valeur UnitSales égale à 18) du client Astrida, DD à la plus grande commande (12) du client Betacab et CC à la plus grande commande (13) du client Canutility. Il y a deux valeurs identiques pour la plus grande commande (16) du client Divadip, ce qui produit un résultat nul.

 

Supposons que la table Temp est chargée comme dans l'exemple précédent :

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

 

Résultats de l'exemple 3
Champ de résultat (Customer) Valeur de résultat (MyProductWithLargestOrderByCustomer)
Astrida AA
Betacab DD
Canutility CC
Divadip AA

La situation est identique à celle de l'exemple précédent, sauf que le qualificateur distinct est utilisé. De ce fait, le doublon obtenu précédemment pour Divadip est ignoré, permettant le renvoi d'une valeur non nulle.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !

Rejoignez le Programme de modernisation analytique

Remove banner from view

Modernisez votre système sans compromettre vos précieuses applications QlikView grâce au Programme de modernisation analytique. Cliquez ici pour plus d'informations ou contactez : ampquestions@qlik.com