Only - función de gráfico
Only() devuelve un valor si hay un solo resultado posible de los datos agregados. Por ejemplo, buscar el único producto en el que el precio por unidad sea 9 devolverá NULL si más de un producto tiene un precio por unidad de 9.
Sintaxis:
Only([{SetExpression}] [TOTAL [<fld {,fld}>]] expr)
Tipo de datos que devuelve: dual
Argumentos:
Argumento | Descripción |
---|---|
expr | La expresión o el campo que contiene los datos que se han de medir. |
SetExpression | De forma predeterminada, la función de agregación agregará sobre el conjunto de registros posibles definidos por la selección. Se puede definir un conjunto alternativo de registros mediante una expresión de análisis de conjuntos. |
TOTAL |
Si la palabra TOTAL aparece antes de los argumentos de la función, el cálculo se realiza sobre todos los valores posibles dadas las selecciones actuales y no solo aquellas que pertenecen al valor dimensional actual, es decir, no tiene en cuenta las dimensiones del gráfico. Usar TOTAL [<fld {.fld}>], donde al cualificador TOTAL le sigue una lista de uno o más nombres de campo como un subconjunto de las variables de dimensión del gráfico, crea un subconjunto de los valores totales posibles. |
Ejemplos y resultados:
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 |
Ejemplos | Resultados |
---|---|
Only({<UnitPrice={9}>} Product) |
BB, porque este es el único Product que tiene un UnitPrice de '9'. |
Only({<Product={DD}>} Customer) |
Betacab, porque es el único Customer que vende un Product denominado «DD». |
Only({<UnitPrice={20}>} UnitSales) |
El número de UnitSales donde UnitPrice es 20 es 2, porque solo hay un valor de UnitSales en el que UnitPrice =20. |
Only({<UnitPrice={15}>} UnitSales) |
NULL, porque hay dos valores de UnitSales donde el UnitPrice =15. |
Datos utilizados en los ejemplos:
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 '|');