Oracle/PLSQL: función de RANGO

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

Oracle/PLSQL: función de RANGO

Este tutorial de Oracle explica cómo usar Oracle/PLSQL función de clasificación Con sintaxis y ejemplos.

describir

La función Oracle/PLSQL RANK devuelve el rango de un valor dentro de un conjunto de valores. Es muy similar a la función DENSE_RANK. Sin embargo, si los valores de prueba son los mismos, la función de clasificación puede generar clasificaciones discontinuas. Mientras que la función DENSE_RANK siempre dará como resultado clasificaciones consecutivas.

La función RANK se puede utilizar de dos formas: como una función agregada o como una función analítica.

Sintaxis de la función RANK #1 – Usar como función agregada

Como una función agregada, función de clasificación Devuelve el rango de una fila en un conjunto de filas.

sintaxis función de clasificación Cuando se usa como una función agregada es:

RANK( expr1 [, expr2, ... expr_n ] ) WITHIN GROUP ( ORDER BY expr1 [, expr_2, ... expr_n ] )

parámetro o parámetro

expr1 identifica la primera expresión de la fila única en el grupo. expr2, … expr_n opcional. Expresiones adicionales que identifican filas únicas en el grupo.

devolver los bienes

La función RANK devuelve un número.

notas

  • El número de expresiones en la primera lista de expresiones debe ser el mismo que el número en la cláusula ORDER BY.
  • Las listas de expresiones coinciden posicionalmente, por lo que los tipos de datos deben ser compatibles entre las expresiones de la primera lista de expresiones, como en una cláusula ORDER BY.

aplicar para

La función RANK está disponible en las siguientes versiones de Oracle/PLSQL:

  • Oráculo 12c, Oráculo 11g, Oráculo 10g, Oráculo 9i

Ejemplo (como función agregada)

Veamos algunos ejemplos de la función RANK de Oracle y exploremos cómo usar la función RANK en Oracle/PLSQL.

Por ejemplo:

select RANK(1000, 500) WITHIN GROUP (ORDER BY salary, bonus)
from employees;

La instrucción SQL anterior devolverá el rango de un empleado con un salario de $1000 y una bonificación de $500 en la tabla de empleados.

Sintaxis de la función RANK #2: utilizada como función analítica

Como una función analítica, función de clasificación Devuelve el rango de cada fila de la consulta en relación con las otras filas.

sintaxis función de clasificación Cuando se usa como una función analítica es:

rank() OVER ( [ query_partition_clause] ORDER BY clause )

devolver los bienes

La función RANK devuelve un número.

aplicar para

La función RANK está disponible en las siguientes versiones de Oracle/PLSQL:

  • Oráculo 11g, Oráculo 10g, Oráculo 9i, Oráculo 8i

Ejemplo (como función analítica)

select employee_name, salary,
RANK() OVER (PARTITION BY department ORDER BY salary)
from employees
where department="Marketing";

La declaración SQL anterior devolverá todos los empleados que trabajan en el departamento de marketing y luego calculará el rango para cada salario único en el departamento de marketing. Si dos empleados tienen el mismo salario, la función RANK devolverá el mismo rango para ambos empleados. Sin embargo, esto crea brechas en las clasificaciones (es decir, clasificaciones no consecutivas). Esto es bastante diferente de la función DENSE_RANK que produce clasificaciones continuas.