Ícone do site CooperaTI

Funções Analíticas Oracle e as suas aplicabilidades: Lag e Lead

Olá, galera!

Quanto tempo heim?


➤ Conheça nosso programa de assinatura: https://cursos.bernardes.com.br/bexpert-cooperati


 

Hoje voltaremos a falar de funções analíticas, porque as vezes é necessário criar consultas que possam me dar o valor anterior ou até mesmo do próximo. Para não precisar criar várias consultas, trago duas funções super simples de aplicar na prática.

A primeira que falaremos é a Lag, ela tem a função de mostrar qual é o valor anterior, dentro da consulta.

Vamos primeiro pegar uma consulta simples da tabela Funcionario

 
SELECT NOME, SALARIO FROM FUNCIONARIO

Agora, vamos aplicar dentro da consulta a função LAG.

 SELECT NOME, SALARIO,

 LAG(SALARIO, 1, 0) OVER (ORDER BY SALARIO) AS SAL_PREV,

SALARIO – LAG(SALARIO, 1, 0) OVER (ORDER BY SALARIO) AS SAL_DIFF
FROM FUNCIONARIO;

Percebemos, que para o primeiro registro ele retorna 0, pois não encontra nenhum valor. Criei também uma coluna, onde mostra a diferença entre os valores do Salário com o Sal_Prev.

Aplicando a função LEAD


➤ Conheça nosso programa de assinatura: https://cursos.bernardes.com.br/bexpert-cooperati


 

A função LEAD tem a característica, de procurar o valor da próxima linha dentro da consulta.

SELECT NOME,
SALARIO,
LEAD(SALARIO,
1, 0) OVER (ORDER BY SALARIO) AS SAL_NEXT,
LEAD(SALARIO,
1, 0) OVER (ORDER BY SALARIO) – SALARIO AS SAL_DIFF
FROM FUNCIONARIO;

Com isso abordamos mais funções analíticas, que podem nos ajudar no dia a dia.

Abraços e até a próxima!


Sair da versão mobile