Only - chart function

Only() returns a value if there is one and only one possible result from the aggregated data. For example, searching for the only product where the unit price =9 will return NULL if more than one product has a unit price of 9.


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

Return data type: dual


Argument Description
expr The expression or field containing the data to be measured.
SetExpression By default, the aggregation function will aggregate over the set of possible records defined by the selection. An alternative set of records can be defined by a set analysis expression.

If the word TOTAL occurs before the function arguments, the calculation is made over all possible values given the current selections, and not just those that pertain to the current dimensional value, that is, it disregards the chart dimensions.

By using TOTAL [<fld {.fld}>], where the TOTAL qualifier is followed by a list of one or more field names as a subset of the chart dimension variables, you create a subset of the total possible values.

Defining the aggregation scope

Tip: Use Only() when you want a NULL result if there are multiple possible values in the sample data.

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
Examples Results

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

BB, because this is the only Productthat has a UnitPrice of '9'.

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

B, because the only Customer selling a Product called 'DD'.

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

The number of UnitSales where UnitPrice is 20 is 2, because there is only one value of UnitSales where the UnitPrice =20.

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

NULL, because there are two values of UnitSales where the UnitPrice =15.

Data used in examples:


LOAD * inline [










] (delimiter is '|');