Função LAG SQL SERVER
- Amanda Nascimento
- 20 de out. de 2023
- 1 min de leitura
Atualizado: 23 de set. de 2024
A função LAG pode ser usada em consultas onde você deseja calcular diferenças entre valores em linhas consecutivas.
Neste exemplo eu preciso pegar o resultado do mês anterior, com isso, criei uma coluna de índice
ROW_NUMBER() OVER (ORDER BY ANO, MES) AS INDICE, mas posso também referenciar outra ou outras colunas.
Na primeira linha de código assumi o número 5 como número inicial, visto que a minha consulta se inicia em janeiro de 2021 e o número do mês anterior, dezembro de 2020 não consta na consulta.
Mas no exemplo da segunda linha, não inseri nenhum valor, tanto que o retorno é null.
Perceba que a coluna contagem_anterior retorna o número do mês anterior que esta na coluna contagem.

COALESCE(LAG(CONTAGEM) OVER (ORDER BY ANO, MES), 5) AS CONTAGEM_ANTERIOR,
LAG(CONTAGEM) OVER (ORDER BY ANO, MES) AS CONTAGEM_ANTERIOR1,