Rank - función de gráfico

Rank() evalúa las filas del gráfico en la expresión, y para cada fila muestra la posición relativa del valor de la dimensión evaluada en la expresión. Esta función, cuando evalúa la expresión, compara el resultado con el resultado de las otras filas que contienen el segmento de columna actual y devuelve la clasificación de la fila actual dentro del segmento.

Para gráficos que no sean tablas, se define el segmento de columna actual tal como aparece en su equivalente en la tabla simple.

Syntax:  

Rank([TOTAL] expr[, mode[, fmt]])

Return data type: dual

Arguments:  

Argumento Descripción
expr La expresión o el campo que contiene los datos que se han de medir.
mode Especifica la representación numérica del resultado de la función.
fmt Especifica la representación de texto del resultado de la función.
TOTAL

Si el gráfico es unidimensional o si la expresión va precedida por el cualificador TOTAL, la función se evalúa en toda la columna. Si la tabla o el equivalente de tabla tiene múltiples dimensiones verticales, el segmento de columna actual incluirá sólo filas con los mismos valores que la fila actual en todas las columnas de dimensión, excepto para la columna que muestra la última dimensión en el orden de campos interno.

Definir el ámbito de agregación

El ranking se devuelve como un valor dual, el cual, en el caso de que cada fila tenga una clasificación única será un entero entre 1 y el número de filas del segmento de columna actual.

En caso de que varias filas compartan el mismo ranking, el texto y la representación numérica se pueden controlar con los parámetros mode y fmt.

mode

El segundo argumento, mode, puede tomar los siguientes valores:

Valor Descripción
0 (por defecto)

Si todos los rangos dentro del grupo compartido caen dentro del extremo más bajo del valor de en medio del ranking entero, todas las filas reciben el rango menor dentro del grupo compartido.

Si todos los rangos dentro del grupo compartido caen dentro del extremo más alto del valor de en medio del ranking entero, todas las filas reciben el rango menor dentro del grupo compartido.

Si todos los rangos dentro del grupo compartido se salen del valor central del ranking completo, todas las filas reciben el valor correspondiente a la media del ranking superior e inferior en el segmento de columna completo.

1 Rango más bajo en todas las filas.
2 Rango promedio en todas las filas.
3 Rango más alto en todas las filas.
4 Rango más bajo en la primera fila, incrementado por uno para cada fila.
fmt

El tercer argumento, fmt, puede tomar los siguientes valores:

Valor Descripción
0 (por defecto) Valor bajo - valor alto en todas las filas (por ejemplo 3 - 4).
1 Valor bajo en todas las filas.
2 Valor más bajo en la primera fila, espacio en blanco en las siguientes filas.

El orden de las filas para mode 4 y fmt 2 viene determinado por el orden de clasificación de las dimensiones del gráfico.

Examples and results:  

Cree dos visualizaciones a partir de las dimensiones Product y Sales y otra a partir de Product y UnitSales. Agregue medidas tal como se muestra en la tabla siguiente.

Ejemplos Resultados

Ejemplo 1. Cree una tabla con las dimensiones Customer y Sales y la medida Rank(Sales)

El resultado depende del orden de las dimensiones. Si la tabla se ordena por Customer, la tabla muestra todos los valores de Sales para Astrida, luego Betacab, y así sucesivamente. Los resultados de Rank(Sales) mostrarán 10 para el valor Sales 12, 9 para el valor Sales 13, etc., con el valor de rango de 1 devuelto para el valor Sales 78. El siguiente segmento de columna comienza con Betacab, para el que el primer valor de Sales en el segmento es 12. El valor de rango de Rank(Sales) para esto se proporciona como 11.

Si la tabla se ordena por Sales, los segmentos de columna consistirán en los valores de Sales y el correspondiente Customer. Debido a que hay dos valores Sales de 12 (para Astrida y Betacab), el valor de Rank(Sales) para ese segmento de columna es 1-2, por cada valor de Customer. Esto se debe a que hay dos valores de Customer para el valor Sales 12. Si hubiera habido 4 valores, el resultado sería 1-4 para todas las filas. Esto muestra cómo se ve el resultado para el valor predeterminado (0) del argumento fmt.

Ejemplo 2. Reemplace la dimensión Cliente por Producto y agregue la medida Rank(Sales,1,2) Esto devuelve 1 en la primera fila en cada segmento de columna y deja en blanco todas las demás filas, porque los argumentos mode y fmt se fijan en 1 y 2 respectivamente.

Resultados para el ejemplo 1, con tabla ordenada por Customer:

Customer Sales Rank(Sales)
Astrida 12 10
Astrida 13 9
Astrida 20 8
Astrida 22 7
Astrida 45 6
Astrida 46 5
Astrida 60 4
Astrida 65 3
Astrida 70 2
Astrida 78 1
Betcab 12 11

Resultados para el ejemplo 1, con tabla ordenada por Sales:

Customer Sales Rank(Sales)
Astrida 12 1-2
Betacab 12 1-2
Astrida 13 1
Betacab 15 1
Astrida 20 1
Astrida 22 1-2
Betacab 22 1-2
Betacab 24 1-2
Canutility 24 1-2

 

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|0|25

Canutility|AA|8|15

Canutility|CC|0|19

] (delimiter is '|');

 

Sales2013:

crosstable (Month, Sales) LOAD * inline [

Customer|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec

Astrida|46|60|70|13|78|20|45|65|78|12|78|22

Betacab|65|56|22|79|12|56|45|24|32|78|55|15

Canutility|77|68|34|91|24|68|57|36|44|90|67|27

Divadip|57|36|44|90|67|27|57|68|47|90|80|94

] (delimiter is '|');