LEAD
Devuelve el valor de la fila situada offset filas después de la actual en la partición de la ventana.
MySQL 8.4
LEAD(column[, offset[, default]])- [ ]parte opcional
- column
- Columna o expresión cuyo valor se toma de la fila siguiente
- offset
- Cuántas filas hacia delante; número entero no negativo; por defecto, 1INTOpcional
- default
- Valor si no existe una fila con ese desplazamiento; por defecto, NULLOpcional
Valor devuelto
Valor del tipo de column; default o NULL si no existe una fila con ese desplazamiento, por ejemplo en la última fila de una partición
Ejemplos
Desplazamiento de una y dos filas hacia delante
MySQL 8.4
SELECT member_name,
birthday,
LEAD(member_name) OVER (
ORDER BY birthday
) AS next_member,
LEAD(member_name, 2, 'none') OVER (
ORDER BY birthday
) AS two_rows_ahead
FROM FamilyMembers;Días libres hasta la siguiente reserva
MySQL 8.4
SELECT room_id,
start_date,
end_date,
DATEDIFF(
LEAD(start_date) OVER (
PARTITION BY room_id
ORDER BY start_date
),
end_date
) AS free_days_after
FROM Reservations;Detalles
Con LEAD es fácil calcular el tiempo hasta el siguiente evento: por ejemplo, cuántos días está libre una habitación hasta la siguiente reserva. default solo se usa si no existe una fila con ese desplazamiento; si existe pero contiene NULL, el resultado es NULL.