Agregado Sintaxis
rank_aggregate::=
Descripción de la ilustración rank_aggregate.gif
Analítica de la Sintaxis
rank_analytic::=
Descripción de la ilustración rank_analytic.gif
Ver también:
«funciones analíticas»para obtener información sobre sintaxis, semántica y restricciones
propósito
RANK
calcula el rango de un valor en un grupo de valores. El tipo devuelto es NUMBER
.,
vea también:
tabla 2-10, «matriz de conversión de tipo implícito» para más información sobre la conversión implícita y «precedencia numérica» para información sobre precedencia numérica
Las filas con valores iguales para los criterios de clasificación reciben el mismo rango. Oracle Database agrega el número de filas vinculadas al rango vinculado para calcular el siguiente rango. Por lo tanto, los rangos no pueden ser números consecutivos. Esta función es útil para los informes top-N y bottom-N.,
-
como una función agregada,
RANK
calcula el rango de una fila hipotética Identificada por los argumentos de la función con respecto a una especificación de Ordenación dada. Todos los argumentos de la función deben evaluarse a expresiones constantes dentro de cada grupo agregado, porque identifican una sola fila dentro de cada grupo. Las expresiones del argumento constante y las expresiones en la cláusulaORDER
BY
de la coincidencia agregada por posición., Por lo tanto, el número de argumentos debe ser el mismo y sus tipos deben ser compatibles. -
como función analítica,
RANK
calcula el rango de cada fila devuelta de una consulta con respecto a las otras filas devueltas por la consulta, basándose en los valores devalue_exprs
Enorder_by_clause
.,
Ejemplo agregado
el siguiente ejemplo calcula el rango de un empleado hipotético en la tabla de muestra hr.employees
con un salario de 1 15,500 y una comisión del 5%:
SELECT RANK(15500, .05) WITHIN GROUP (ORDER BY salary, commission_pct) "Rank" FROM employees; Rank---------- 105
de manera similar, la siguiente consulta devuelve el rango por $15,500 salario entre los salarios de los empleados:
SELECT RANK(15500) WITHIN GROUP (ORDER BY salary DESC) "Rank of 15500" FROM employees;Rank of 15500-------------- 4
Ejemplo analítico
la siguiente declaración clasifica a los empleados en la muestra hr
esquema en el departamento 80 en función de su salario y comisión., Los valores salariales idénticos reciben el mismo rango y causan rangos no consecutivos. Compare este ejemplo con el ejemplo de DENSE_RANK.