En esta sección: Cómo: |
Cuando clasifica filas de clasificación de informe con la frase BY, puede indicar el rango numérico de cada fila. La catalogación de valores de campo de clasificación suele combinarse con la restricción de valores de campo de clasificación por rango.
Tenga en cuenta que es posible que varias filas de informe tengan el mismo rango si tienen valores de campo de clasificación idénticos.
El título de columna predeterminado de RANKED BY es RANK. Puede cambiar el título mediante una frase AS. El campo RANK tiene un formato I7. Por tanto, la columna RANK de un informe puede tener hasta siete dígitos. Para más información, consulte Cómo usar encabezados, pies, títulos y etiquetas.
Puede catalogar valores agregados con la sintaxis RANKED BY TOTAL. Para obtener información detallada, consulte Cómo clasificar y agregar columnas de informes.
RANKED [AS 'name'] BY {HIGHEST|LOWEST} [n] sortfield [AS 'text']
donde:
Es el nuevo nombre del título de columna RANK.
Es el nombre del campo de clasificación. El campo puede ser numérico o alfanumérico.
Es el número de categorías del ranking mostrado en la salida de informes.
Es el encabezado de la columna utilizada para el campo de clasificación, en la salida del informe.
Emita la siguiente solicitud para mostrar una lista de nombres de empleados en orden salarial, indicando el rango de cada empleado por salario. Fíjese que los empleados Jones y McCoy tienen el mismo rango porque su salario actual es el mismo.
TABLE FILE EMPLOYEE PRINT LAST_NAME RANKED AS 'Sequence' BY CURR_SAL END
La salida es:
La catalogación de valores de campo de clasificación suele combinarse con la restricción de valores de campo de clasificación por rango, como en el ejemplo siguiente.
TABLE FILE EMPLOYEE PRINT LAST_NAME RANKED BY HIGHEST 5 CURR_SAL END
La salida es:
RANK CURR_SAL LAST_NAME ---- -------- --------- 1 $29,700.00 BANNING 2 $27,062.00 CROSS 3 $26,862.00 IRVING 4 $21,780.00 BLACKWOOD 5 $21,120.00 ROMANS
Cómo: Referencia: |
En WebFOCUS, las frases de clasificación RANK BY y BY {HIGHEST|LOWEST} n clasifican la salida del informe y asignan números del ranking a la secuencia de valores de datos. Al asignar un rango a un valor de datos, WebFOCUS no se salta por defecto los números del ranking. Esto quiere decir que, incluso si asigna múltiples valores de datos al mismo rango, el número del ranking del grupo de valores siguiente será el próximo número entero de la secuencia. Este método de asignación de números de ranking se denomina denso.
Algunos motores relacionales asignan números de ranking, mediante el método disperso. Con el ranking disperso, si se ha asignado el mismo número de ranking a múltiples valores de datos, el próximo número del ranking será el número anterior de ranking más el número de múltiplos.
Puede usar el parámetro RANK de WebFOCUS para controlar el tipo de ranking empleado por WebFOCUS. Además, si está accediendo a un origen de datos relacional, puede establecer el tipo de ranking empleado por el motor relacional como su método de ranking, y así optimizar el cálculo de los rangos. Algunos motores relacionales incluyen funciones para ambos tipos de ranking. En este caso, puede optimizar cualquier configuración.
Para pasar el procesamiento de rankings a su motor relacional, su solicitud debe:
[RANKED] BY [HIGHEST] n
SET RANK={DENSE|SPARSE}
donde:
Especifica el ranking denso. Con este método, cada número del ranking es el próximo número entero de la secuencia, incluso cuando se ha asignado el mismo rango a múltiples valores de datos. El valor por defecto es DENSE.
Especifica el ranking disperso. Con este método, si se ha asignado el mismo número de ranking a múltiples valores de datos, el próximo número del ranking será el número anterior de ranking más el número de múltiplos.
Por consiguiente, utilice una de estas variantes de la frase BY en su solicitud:
RANKED BY {HIGHEST|LOWEST} [n] sortfield [AS 'text']
o
BY {HIGHEST|LOWEST} n sortfield [AS 'text']
donde:
Es el número más alto del ranking que aparece en la salida del informe, cuando se usa la frase RANKED BY. Si no se está utilizando RANKED, se trata del número de valores distintos de campos de clasificación mostrado en la salida del informe, cuando SET RANK=DENSE, y el número total de líneas de salida para el campo de clasificación, con SET RANK=SPARSE.
Es el nombre del campo de clasificación.
Es el encabezado que se va usar para la columna del campo de clasificación, en la salida del informe.
La siguiente solicitud, basada en el origen de datos EMPDATA, establece un ranking de salarios descendente, por división. El parámetro RANK se encuentra establecido en DENSE (por defecto).
SET RANK = DENSE TABLE FILE EMPDATA PRINT LASTNAME FIRSTNAME RANKED BY HIGHEST 12 SALARY BY DIV ON TABLE SET PAGE NOPAGE END
La salida indica que hay seis empleados en el número 6 del ranking. Con el método denso, el próximo número del ranking será el número entero siguiente, más alto, el 7.
RANK SALARY DIV LASTNAME FIRSTNAME ---- ------ --- -------- --------- 1 $115,000.00 CE LASTRA KAREN 2 $83,000.00 CORP SANCHEZ EVELYN 3 $80,500.00 SE NOZAWA JIM 4 $79,000.00 CORP SOPENA BEN 5 $70,000.00 WE CASSANOVA LOIS 6 $62,500.00 CE ADAMS RUTH CORP CVEK MARCUS WANG JOHN NE WHITE VERONICA SE BELLA MICHAEL HIRSCHMAN ROSE 7 $58,800.00 WE GOTLIEB CHRIS 8 $55,500.00 CORP VALINO DANIEL NE PATEL DORINA 9 $54,100.00 CE ADDAMS PETER WE FERNSTEIN ERWIN 10 $52,000.00 NE LIEBER JEFF 11 $50,500.00 SE LEWIS CASSANDRA 12 $49,500.00 CE ROSENTHAL KATRINA SE WANG KATE
Si ejecuta la misma solicitud con SET RANK=SPARSE, obtendrá la siguiente salida. Puesto que la categoría 6 del ranking incluye seis empleados, el próximo número del ranking será 6 + 6.
RANK SALARY DIV LASTNAME FIRSTNAME ---- ------ --- -------- --------- 1 $115,000.00 CE LASTRA KAREN 2 $83,000.00 CORP SANCHEZ EVELYN 3 $80,500.00 SE NOZAWA JIM 4 $79,000.00 CORP SOPENA BEN 5 $70,000.00 WE CASSANOVA LOIS 6 $62,500.00 CE ADAMS RUTH CORP CVEK MARCUS WANG JOHN NE WHITE VERONICA SE BELLA MICHAEL HIRSCHMAN ROSE 12 $58,800.00 WE GOTLIEB CHRIS
La siguiente solicitud, basada en el origen de datos EMPDATA, clasifica los salarios en un orden descendente, por división, e imprime los 12 más altos. El parámetro RANK se encuentra establecido en DENSE (por defecto).
SET RANK = DENSE TABLE FILE EMPDATA PRINT LASTNAME FIRSTNAME BY HIGHEST 12 SALARY BY DIV ON TABLE SET PAGE NOPAGE END
La salida presenta los 12 valores distintos de salario más altos, aunque algunos de los empleados tengan el mismo salario.
SALARY DIV LASTNAME FIRSTNAME ------ --- -------- --------- $115,000.00 CE LASTRA KAREN $83,000.00 CORP SANCHEZ EVELYN $80,500.00 SE NOZAWA JIM $79,000.00 CORP SOPENA BEN $70,000.00 WE CASSANOVA LOIS $62,500.00 CE ADAMS RUTH CORP CVEK MARCUS WANG JOHN NE WHITE VERONICA SE BELLA MICHAEL HIRSCHMAN ROSE $58,800.00 WE GOTLIEB CHRIS $55,500.00 CORP VALINO DANIEL NE PATEL DORINA $54,100.00 CE ADDAMS PETER WE FERNSTEIN ERWIN $52,000.00 NE LIEBER JEFF $50,500.00 SE LEWIS CASSANDRA $49,500.00 CE ROSENTHAL KATRINA SE WANG KATE
Si ejecuta la misma solicitud con SET RANK=SPARSE, obtendrá la siguiente salida. Puesto que hay seis empleados con un salario de $62,500, el valor se cuenta 6 veces para que sólo aparezcan 12 líneas (siete valores distintos de salario) en la salida.
SALARY DIV LASTNAME FIRSTNAME ------ --- -------- --------- $115,000.00 CE LASTRA KAREN $83,000.00 CORP SANCHEZ EVELYN $80,500.00 SE NOZAWA JIM $79,000.00 CORP SOPENA BEN $70,000.00 WE CASSANOVA LOIS $62,500.00 CE ADAMS RUTH CORP CVEK MARCUS WANG JOHN NE WHITE VERONICA SE BELLA MICHAEL HIRSCHMAN ROSE $58,800.00 WE GOTLIEB CHRIS
WebFOCUS |