Función de ventana analítica lag
Se aplica a: Databricks SQL 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 queexpr
.IGNORE NULLS
oRESPECT NULLS
: cuandoIGNORE NULLS
se especifique, se omitirá cualquier valorexpr
que sea NULL. El valor predeterminado esRESPECT 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