lag
função de janela analítica
Aplica-se a: Databricks SQL Databricks Runtime
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 INTEGER opcional especificando o deslocamento.default
: Uma expressão do mesmo tipo queexpr
.IGNORE NULLS
ouRESPECT NULLS
: QuandoIGNORE NULLS
é especificado, qualquerexpr
valor que é NULL é ignorado. A predefinição éRESPECT NULLS
.- Cláusula OVER: A cláusula que descreve a janela. Consulte: Funções da janela.
Devoluções
O tipo de resultado corresponde a expr
.
Se offset
for positivo, o valor origina-se da linha que precede a linha atual especificando offset
ORDER BY na cláusula OVER.
Um deslocamento de 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
, o padrão será 1, a linha imediatamente a seguir.
Se não houver nenhuma linha no deslocamento especificado dentro da partição, o especificado default
será usado.
O default
padrão é NULL
.
Você deve fornecer uma cláusula ORDER BY.
Esta 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