No Oracle, uma função analítica refere -se a funções usadas para calcular um conjunto de linhas. As funções analíticas são usadas principalmente para determinar as várias métricas, como percentis, desvios padrão, etc.
Neste tutorial, aprenderemos a usar uma das funções do LAG Oracle para acessar uma linha em um deslocamento específico da linha atual.
Função Oracle Lag ()
A função lag () é usada para buscar o valor de uma linha em uma tabela da linha atual. Por exemplo, você pode usá -lo para obter o valor de cinco linhas da sua posição atual. Você pode usá -lo para executar os cálculos ou comparações entre valores ao longo do tempo.
A seguir, mostra a sintaxe básica da função:
Atraso (expr [, offset] [, padrão])A função aceita os seguintes parâmetros:
Exemplo de função oracle lag ()
Este exemplo demonstra como usar a função lag ().
Selecione First_Name, Last_Name, Salário, Job_id, Lag (Salário) (Ordem por Salário ASC)Resultado:
Como você pode ver, a coluna de atraso contém o salário da fila atrás dela. Se não houver uma linha atrás dela, como a primeira coluna, a função retorna nulo.
Podemos evitar isso definindo o parâmetro padrão.
Selecione First_Name, Last_name, Salário, Lag (Salário, 1, 0) sobre (Ordem por Salário ASC) como AnteriorSaída:
Também podemos especificar o valor de deslocamento, conforme mostrado no seguinte:
Selecione First_Name, Last_name, Salário, Lag (Salário, 5, 0) (Ordem por Salário ASC) como AnteriorNesse caso, a consulta deve buscar cinco colunas atrás dela da seguinte forma:
Para usar a função de atraso com uma cláusula de partição, podemos executar o seguinte comando:
Selecione First_Name, Last_Name, Job_Id Salário, Lag (Salário, 1, 0) (Partição por Job_id Ordem por Salário ASC) como AnteriorResultado:
Conclusão
Neste post, discutimos como usar a função Oracle Lag () para buscar as linhas anteriores da posição atual em um determinado deslocamento.