previous_value
La función previous_value es una función de ventana que devuelve el valor del anterior 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
Sección titulada «Ejemplo»La siguiente consulta devuelve las ventas de cada mes y las ventas en el mes siguanterior.
select year(fecha) anyo, month(fecha) mes, sum(unidades) ventas, previous_value(ventas) over (order by anyo,mes) nextValue,from dbo.lb_ventasgroup by allLa misma consulta se puede construir con la sintaxis compacta del OVER:
select year(fecha) anyo, month(fecha) mes, sum(unidades) ventas, previous_value(ventas order by anyo,mes) nextValue,from dbo.lb_ventasgroup by allLa 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 PRECEDING AND 1 PRECEDING) AS nextValueFROM dbo.lb_ventasGROUP BY year(fecha), month(fecha)Comentarios
Sección titulada «Comentarios»La función next_value devuelve el valor del registro previo.