Función Oracle Lag

Función Oracle Lag

En Oracle, una función analítica se refiere a funciones que se utilizan para calcular un conjunto de filas. Las funciones analíticas se utilizan principalmente para determinar las diversas métricas, como percentiles, desviaciones estándar, etc.

En este tutorial, aprenderemos cómo usar una de las funciones de Oracle Lag para acceder a una fila en una compensación específica desde la fila actual.

Función Oracle Lag ()

La función lag () se usa para obtener el valor de una fila en una tabla de la fila actual. Por ejemplo, puede usarlo para obtener el valor de cinco filas de su posición actual. Puede usarlo para realizar los cálculos o comparaciones entre los valores a lo largo del tiempo.

A continuación se muestra la sintaxis básica de la función:

Lag (expr [, offset] [, predeterminado])
ENCIMA (
[QUERY_PARTITION_CLAUSE]
orden_by_clause
)

La función acepta los siguientes parámetros:

  1. Expr - Esto define la expresión que se evalúa con el valor de fila especificado en el parámetro de desplazamiento.
  2. Compensar - Establece el número de filas que desea volver desde la fila actual. Por defecto, la función obtiene la fila que está detrás de la actual.
  3. Por defecto - Permite que la función devuelva un valor predeterminado cuando va más allá del alcance del desplazamiento especificado en lugar de un valor nulo.
  4. Query_Partition_clause - Especifica la partición por cláusula para organizar las filas en varios grupos.
  5. Orden_by_clause - Establece el orden para las filas.

Oracle Lag () Función Ejemplo

Este ejemplo demuestra cómo usar la función lag ().

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

Resultado:

Como puede ver, la columna de retraso contiene el salario de la fila detrás de él. Si no hay una fila detrás de esto, como la primera columna, la función devuelve nulo.

Podemos evitar esto configurando el parámetro predeterminado.

Seleccione First_Name, Last_Name, Salario, LAG (Salario, 1, 0) Over (Orden por ASC) como anterior
de los empleados EMP;

Producción:

También podemos especificar el valor de desplazamiento como se muestra en lo siguiente:

Seleccione First_Name, Last_Name, Salario, LAG (Salario, 5, 0) Over (Orden por Salario ASC) como anterior
de los empleados EMP;

En este caso, la consulta debe obtener cinco columnas detrás de él de la siguiente manera:

Para usar la función LAG con una Partición por cláusula, podemos ejecutar el siguiente comando:

Seleccione First_Name, Last_Name, Job_id SALARY, LAG (SALARIO, 1, 0) Over (Partition by Job_id Order by Salary ASC) como anterior
de los empleados EMP;

Resultado:

Conclusión

En esta publicación, discutimos cómo usar la función Oracle Lag () para obtener las filas anteriores de la posición actual en una compensación dada.