# FirstSortedValue Fonction de script

FirstSortedValue() renvoie la valeur de l'expression spécifiée dans value qui correspond au résultat du tri de l'argument sort\_weight, par exemple, le nom du produit ayant le prix unitaire le plus bas. Il est possible de spécifier la nième valeur dans l'ordre de tri dans l'argument rank. 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.

Syntaxe :

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

Type de données renvoyé : double

Arguments :

Arguments

| 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. |

Exemples et résultats :

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

Pour obtenir le même aspect que dans la colonne des résultats ci-dessous, désélectionnez le tri par ordre numérique et alphabétique. Pour ce faire, dans le panneau des propriétés, sous Tri, passez du paramètre Auto au paramètre Personnalisé(es).

Exemples de script

| Exemple | 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;<br>` | ` Customer MyProductWithSmallestOrderByCustomer  ` `Astrida CC` `Betacab AA` `Canutility AA` `Divadip DD`<br><br>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.<br><br>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 :<br><br>`LOAD  Customer,FirstSortedValue(Product, -UnitSales) as MyProductWithLargestOrderByCustomer Resident Temp Group By Customer;` | ` Customer MyProductWithLargestOrderByCustomer  ` `Astrida AA` `Betacab DD` `Canutility CC` `Divadip -`<br><br>Comme un signe moins précède l'argument sort\_weight, la fonction trie les valeurs les plus grandes en premier.<br><br>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 existe 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 :<br><br>`LOAD  Customer,FirstSortedValue(distinct Product, -UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;` | ` Customer MyProductWithLargestOrderByCustomer  ` `Astrida AA` `Betacab DD` `Canutility CC` `Divadip AA`<br><br>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. |