Only

Only() renvoie une valeur s'il n'y a qu'un seul résultat possible dans les données agrégées. Par exemple, la recherche du seul produit dont le prix unitaire est égal à 9 renverra NULL si plusieurs produits ont un prix unitaire de 9.

Syntax:  

Only([{SetExpression}] [TOTAL [<fld {,fld}>]] expr)

Return data type: double

Arguments:  

Argument Description
expr Expression ou champ contenant les données à mesurer.
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.
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.

Définition de l'étendue d'une agrégation

Conseil: Utilisez Only() pour obtenir un résultat NULL lorsque plusieurs valeurs sont possibles dans les échantillons de données.

Examples and results:  

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
Exemples Résultats

Only({<UnitPrice={9}>} Product)

BB, car il s'agit du seul produit Product dont le prix unitaire UnitPrice est égal à '9'.

Only({<Product={DD}>} Customer)

Betacab, car il s'agit du seul client (Customer) vendant un produit (Product) appelé 'DD'.

Only({<UnitPrice={20}>} UnitSales)

Le nombre d'éléments UnitSales pour lesquels UnitPrice est égal à 20 est de 2, car il n'y a qu'une seule valeur sous UnitSales pour laquelle le prix unitaire (UnitPrice) = 20.

Only({<UnitPrice={15}>} UnitSales)

NULL, car il y a deux valeurs sous UnitSales pour lesquelles le prix unitaire (UnitPrice) = 15.

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 '|');