Função do Lag Oracle

Função do Lag Oracle

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])
SOBRE (
[Query_Partition_clause]
order_by_clause
)

A função aceita os seguintes parâmetros:

  1. Expr - Isso define a expressão que é avaliada em relação ao valor da linha especificado no parâmetro de deslocamento.
  2. Desvio - Ele define o número de linhas que você deseja voltar da linha atual. Por padrão, a função busca a linha que está por trás do seu atual.
  3. Padrão - Ele permite que a função retorne um valor padrão quando vai além do escopo do deslocamento especificado em vez de um valor nulo.
  4. Query_Partition_clause - Especifica a cláusula da partição por organizar as linhas em vários grupos.
  5. Order_by_clause - Ele define o pedido para as linhas.

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)
de funcionários emp;

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 Anterior
de funcionários emp;

Saí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 Anterior
de funcionários emp;

Nesse 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 Anterior
de funcionários emp;

Resultado:

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.