# 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)