Função de janela analítica lag
Aplica-se a: SQL do Databricks Runtime do Databricks
Retorna o valor de expr
de uma linha anterior dentro da partição.
Sintaxe
lag( expr [, offset [, default] ] ) [ IGNORE NULLS | RESPECT NULLS ] OVER clause
Argumentos
expr
: uma expressão de qualquer tipo.offset
: um literal de INTEGER opcional que especifica o deslocamento.default
: uma expressão do mesmo tipo queexpr
.IGNORE NULLS
ouRESPECT NULLS
: quandoIGNORE NULLS
é especificado, qualquer valorexpr
que seja NULL é ignorado. O padrão éRESPECT NULLS
.- Cláusula OVER: a cláusula que descreve a janela. Confira: Funções de janela.
Retornos
O tipo de resultado corresponde a expr
.
Se offset
for positivo, o valor será originado da linha que precede a linha atual pelo offset
especificado em ORDER BY na cláusula OVER.
Um deslocamento igual a 0 usa o valor da linha atual.
Um deslocamento negativo usa o valor de uma linha após a linha atual.
Se você não especificar offset
, ele usará 1 como padrão, a linha logo a seguir.
Se não houver nenhuma linha no deslocamento especificado dentro da partição, o default
especificado será usado.
O padrão de default
é NULL
.
É preciso fornecer uma cláusula ORDER BY.
Essa função é sinônimo de lead(expr, -offset, default)
.
Exemplos
> SELECT a, b, lag(b) OVER (PARTITION BY a ORDER BY b)
FROM VALUES ('A1', 2), ('A1', 1), ('A2', 3), ('A1', 1) tab(a, b);
A1 1 NULL
A1 1 1
A1 2 1
A2 3 NULL