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])La función acepta los siguientes parámetros:
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)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 anteriorProducció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 anteriorEn 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 anteriorResultado:
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.