Compartir a través de


Función de ventana analítica lag

Se aplica a: casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime

Devuelve el valor de expr de una fila anterior dentro de la partición.

Sintaxis

lag( expr [, offset [, default] ] ) [ IGNORE NULLS | RESPECT NULLS ] OVER clause

Argumentos

  • expr: una expresión de cualquier tipo.
  • offset: un literal INTEGER opcional que especifica el desplazamiento.
  • default: una expresión del mismo tipo que expr.
  • IGNORE NULLS o RESPECT NULLS: cuando IGNORE NULLS se especifique, se omitirá cualquier valor expr que sea NULL. El valor predeterminado es RESPECT NULLS.
  • Cláusula OVER: la cláusula que describe la función de ventana. Consulta: Funciones de ventana.

Devoluciones

El tipo del resultado coincide con el de expr.

Si offset es positivo, el valor se origina en una fila anterior a la fila actual, en la posición que indique offset, especificado con ORDER BY en la cláusula OVER. Con un desplazamiento de 0, se usa el valor de la fila actual. Con un desplazamiento negativo, se usa el valor de una fila posterior a la fila actual. Si no se especifica offset, el valor predeterminado es 1, la fila inmediatamente después de la actual.

Si no hay ninguna fila en el desplazamiento especificado dentro de la partición, se usa el valor de default especificado. El valor predeterminado de default es NULL. Debe proporcionar una cláusula ORDER BY.

Esta función es un sinónimo de lead(expr, -offset, default).

Ejemplos

> 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