# next_value ❇️
La función next_value es una función de ventana que devuelve el valor del siguiente registro del rango.
Requiere la cláusula ORDER BY en la partición OVER.
Se puede usar tanto la sintaxis OVER del SQL estándar como la sintaxis compacta propia de Crono.
# Ejemplo
La siguiente consulta devuelve las ventas de cada mes y las ventas en el mes siguiente.
select
year(fecha) anyo,
month(fecha) mes,
sum(unidades) ventas,
next_value(ventas) over (order by anyo,mes) nextValue,
from dbo.lb_ventas
group by all
La misma consulta se puede construir con la sintaxis compacta del OVER:
select
year(fecha) anyo,
month(fecha) mes,
sum(unidades) ventas,
next_value(ventas order by anyo,mes) nextValue,
from dbo.lb_ventas
group by all
La consulta SQL generada en ambos casos es:
SELECT
year(fecha) AS anyo,
month(fecha) AS mes,
sum(unidades) AS ventas,
max(sum(unidades)) OVER (ORDER BY year(fecha),month(fecha) ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING) AS nextValue
FROM dbo.lb_ventas
GROUP BY
year(fecha),
month(fecha)