Función de rango de Oracle

Función de rango de Oracle

En esta publicación, encontrará la función Rank () en las bases de datos Oracle que le permite determinar el rango de una fila de un conjunto dado de filas.

Función de rango de Oracle

La función de rango () en Oracle nos permite asignar un rango a cada fila en un conjunto de resultados. La función asigna el mismo rango a todas las filas con valores similares y agrega un número a la siguiente fila en el rango.

Podemos expresar la sintaxis para la función como se muestra en la siguiente:

Rank () Over (
[QUERY_PARTITION_CLAUSE]
Orden por sort_expression [ASC | Desc] [NULLS Primero | ÚLTIMO]
);

La función admite los siguientes parámetros:

  1. Query_Partition_clause - Es una cláusula opcional que define la condición para dividir las filas en el resultado de la consulta establecido en varios grupos o particiones. La función de rango () se aplica individualmente a las particiones resultantes.
  2. sort_expression - Este parámetro establece la columna o expresión que se usa para determinar la clasificación de las filas. Las filas resultantes se clasifican en orden ascendente o descendente según lo definido por las palabras clave ASC y DESC. El orden de clasificación predeterminado se establece en ascender.
  3. Finalmente, la palabra clave NULLS determina cómo la función trata los valores nulos al clasificar las filas. Los parámetros aceptados incluyen:
    • Las primeras y últimas palabras clave que especifican si los valores nulos deben clasificarse primero o último. Por defecto, la función clasifica primero los valores nulos.

Ejemplos de funciones Oracle Rank ()

Para ilustrar cómo usar la función rank () en Oracle, usaremos la colección predeterminada de la tabla de empleados.

Considere la siguiente tabla:

Seleccione First_Name, Last_Name, Salario, Job_id de Empleados EMP;

Resultado:

Ejemplo 1: Uso de la función de rango para determinar el rango

Este ejemplo demuestra el uso de la función de rango () para determinar el rango de cada empleado en la tabla.

Seleccione First_Name, Last_Name, Salario, Job_id, Rank () Over (Orden por ASC) como Rank
de los empleados EMP;

En la consulta proporcionada, utilizamos la función de rango para asignar una clasificación a cada fila en la tabla de empleados en función de los valores en la columna salarial.

La función utiliza la cláusula "Orden por" para especificar el orden en que se clasifican las filas. En nuestro ejemplo, utilizamos el orden ascendente basado en el valor de la columna salarial.

La función luego asigna la fila con el salario más bajo un rango de 1 y el rango salarial más alto de n, donde n representa el número de filas en la tabla.

Como puede notar, las filas con valores salariales similares se asignan el mismo rango.

Ejemplo 2: Uso de la función de rango con orden por cláusula

Supongamos que deseamos agrupar las filas basadas en el trabajo_id y luego asignar un rango a las filas en cada partición.

Podemos ejecutar una consulta como se muestra en la siguiente:

Seleccione First_Name, Last_Name, Salario, Job_id, Rank () Over (
Partición por Job_id
Orden por asc
) Como rango
De los empleados EMP;

La partición por cláusula divide las filas de la tabla del empleado en los diversos grupos en función de la columna Job_id.

La función de rango luego asigna una clasificación a cada fila en cada partición con el salario más bajo en cada partición que recibe un rango de 1 y el salario más alto en cada partición que recibe un rango de n (donde n es el número de filas en la partición).

Resultado:

Conclusión

En este tutorial, aprendiste a usar la función de rango de Oracle (). Aunque la función de rango () puede ser beneficiosa, puede conducir a un éxito de rendimiento, especialmente cuando se trabaja con consultas complejas y grandes conjuntos de datos.