Palabras inglesas y abreviaturas
lag = retrasarse
¿Para qué sirve?
Compara valores adyacentes o extremos del período.
Valor devueltoTipo según entrada
Sintaxis
LAG(value[, offset[, fallback]]) OVER ([PARTITION BY partition] ORDER BY order)
¿Qué va en cada argumento?
| Argumento | Tipo / notación | Ejemplo de entrada | Significado / valor predeterminado |
|---|
valueObligatorio | EXPRESSION | value / 42 / NULL | Valor o columna de tipo compatible. |
offsetOpcional | INTEGER | 1 / 0 / -1 | Positivo: filas anteriores. +1 es la anterior; −1, la siguiente. 0 es la actual; predeterminado 1. La dirección sigue ORDER BY dentro de OVER. |
fallbackOpcional | EXPRESSION | -1 / NULL | Se devuelve si la fila no existe en la partición; por defecto NULL. Si la fila existe y su valor es NULL, devuelve NULL. |
partitionOpcional | EXPRESSION | department / user_id | Columna de grupo en PARTITION BY; omitida, todas las filas forman un grupo. |
orderObligatorio | ORDER BY EXPRESSION | value DESC / id | Orden en OVER o cláusula de agregación, no argumento. |
SQL listo para ejecutar
Los datos están incluidos. No hay que crear tablas.
WITH data AS (
SELECT 1 AS id, 10 AS value
UNION ALL SELECT 2, NULL
UNION ALL SELECT 3, 30
)
SELECT id, value,
LAG(value, 1, -1) OVER (ORDER BY id) AS result
FROM data
ORDER BY id;
Resultado de este SQL
| id | value | result |
|---|
1 | 10 | -1 |
2 | NULL | 10 |
3 | 30 | NULL |
Antes de usarla
Anterior/siguiente siguen ORDER BY dentro de OVER: fechas ascendentes, siguiente más reciente; descendentes, más antigua. Añade un ID único para desempatar. No cruza particiones y cuenta filas con NULL. En Snowflake, offset negativo invierte la dirección. RESPECT NULLS cuenta filas NULL; IGNORE NULLS las omite. fallback solo se usa si no hay fila destino.
En el otro dialecto BigQuery
LAG(value[, offset[, fallback]]) OVER ([PARTITION BY partition] ORDER BY order)
En BigQuery, offset es un literal o parámetro entero no negativo; negativo/NULL da error. fallback es una expresión constante compatible y solo se usa si falta la fila destino.
Referencia oficial ↗