El marco determina qué filas se incluirán en el cálculo de la fila de entrada actual, basándose en su posición relativa con respecto a la fila actual.
Si utiliza una función de agregado en lugar de LEAD o LAG, debe especificar un marco de ventana. LEAD y LAG hacen referencia a filas individuales e ignoran la especificación del marco.
El inicio de desplazamiento y el fin de desplazamiento describen el número de filas que aparecen antes y después de la fila de entrada actual. Un desplazamiento de "0" representa la fila de entrada actual. Por ejemplo, un inicio de desplazamiento de -3 y un fin de desplazamiento de 0 describen un marco que incluye la fila de entrada actual y las tres filas anteriores a la fila actual.
En la siguiente imagen se muestra un marco con un inicio de desplazamiento de -1 y un fin de desplazamiento de 1:
Para cada fila de entrada, la función realiza una operación de agregado en las filas dentro del marco. Si configura una expresión de agregado como SUM con el marco anterior, la expresión calcula la suma de los valores dentro del marco y devuelve un valor de 6000 para la fila de entrada.
También puede especificar un marco que no incluya la fila de entrada actual. Por ejemplo, un inicio de desplazamiento de 10 y un fin de desplazamiento de 15 describe un marco que incluye seis filas en total, desde la décima a la decimoquinta fila después de la fila actual.
El inicio de desplazamiento debe ser menor o igual que el fin de desplazamiento.
Los desplazamientos de
Todas las filas anteriores
y
Todas las filas siguientes
representan la primera fila de la partición y la última fila de la partición. Por ejemplo, si el inicio de desplazamiento es Todas las filas anteriores y el fin de desplazamiento es -1, el marco incluye una fila antes de la fila actual y todas las filas anteriores.