Partilhar via


lag função de janela analítica

Aplica-se a: Marque Sim Databricks SQL Marque Sim 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 que expr.
  • IGNORE NULLS ou RESPECT NULLS: Quando IGNORE NULLS é especificado, qualquer expr 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