FirstSortedValue
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.
FirstSortedValue([{SetExpression}] [DISTINCT] [TOTAL [<fld {,fld}>]] value, sort_weight [,rank])
double
- value : Champ de sortie. La fonction détermine la valeur de l'expression value correspondant au résultat du tri du champ sort_weight.
- sort_weight : Champ de saisie. 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 : Si vous spécifiez une valeur rank "n" supérieure à 1, vous obtenez la nième valeur triée.
- SetExpression : Par défaut, la fonction d'agrégation couvre l'ensemble des enregistrements possibles définis par la sélection. Il est possible de définir un ensemble d'enregistrements alternatif à l'aide d'une expression d'analyse d'ensembles.
- 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.
- TOTAL : Si le terme TOTAL précède les arguments de la fonction, le calcul est effectué à partir de toutes les valeurs possibles au vu des sélections actives, et pas seulement à partir de celles qui sont associées à la valeur dimensionnelle active. Autrement dit, les dimensions du graphique ne sont pas prises en compte. Le qualificateur TOTAL peut être suivi d'une liste d'un ou de plusieurs noms de champ placés entre crochets angulaires <fld>. Ces noms de champ doivent constituer un sous-ensemble des variables de dimension du graphique.
Exemple | Résultat |
---|---|
firstsortedvalue (Product, UnitPrice) |
BB, qui correspond au produit Product doté du prix unitaire UnitPrice le plus bas (9). |
firstsortedvalue (Product, UnitPrice, 2) |
BB, qui correspond au produit Product doté du deuxième prix unitaire UnitPrice le plus bas (10). |
firstsortedvalue (Customer, -UnitPrice, 2) |
Betacab, qui correspond au client Customer disposant du produit Product doté du deuxième prix unitaire UnitPrice le plus élevé (20). |
firstsortedvalue (Customer, UnitPrice, 3) |
NULL, car il y a deux valeurs Customer (Astrida et Canutility) dotées du même rang rank (troisième prix unitaire) UnitPrice le plus bas (15). Utilisez le qualificateur distinct pour s'assurer de l'absence de résultats nuls imprévus. |
firstsortedvalue (Customer, -UnitPrice*UnitSales, 2) |
Canutility, qui correspond au client Customer disposant de la deuxième valeur de commande la plus élevée UnitPrice multipliée par UnitSales (120). |
Données utilisées dans les exemples :
ProductData:
LOAD * inline [
Customer|Product|UnitSales|UnitPrice
Astrida|AA|4|16
Astrida|AA|10|15
Astrida|BB|9|9
Betacab|BB|5|10
Betacab|CC|2|20
Betacab|DD||25
Canutility|AA|8|15
Canutility|CC||19
] (delimiter is '|');
Customer | Product | UnitSales | UnitPrice |
---|---|---|---|
Astrida | AA | 4 | 16 |
Astrida | AA | 10 | 15 |
Astrida | BB | 9 | 9 |
Betacab | BB | 5 | 10 |
Betacab | CC | 2 | 20 |
Betacab | DD | - | 25 |
Canutility | AA | 8 | 15 |
Canutility | CC | - | 19 |