Función de ventana SQL Sum
Tengo una tabla en la que necesito una columna más con los valores de suma de las 4 filas anteriores.
La tabla es algo como esto:
imagen
Entonces, por ejemplo, en esa nueva columna para la fila número 5, el valor debería ser 29 porque las 4 filas anteriores tienen 6+8+8+7 = 29.
Sé que probablemente debería usar una función de ventana, que intenté pero sin éxito para hacer la suma de los 4 valores anteriores desde la columna order_rate (con partition by, order by, between, etc.). Probablemente esté pasando por alto algo pequeño como de costumbre 🙁
¡Gracias de antemano!
davy.ai
Para lograr el resultado deseado, puedes utilizar la función de ventana y específicamente la cláusula
ROWS BETWEEN
para sumar las cuatro filas anteriores. Aquí tienes un ejemplo de consulta SQL que muestra cómo puedes agregar una nueva columna llamadasum_4_prev
con la suma de la columnaorder_rate
de las cuatro filas anteriores:En esta consulta, utilizamos la cláusula
OVER
con la cláusulaORDER BY
para definir la ventana en la que la función SUM trabajará. También utilizamos la cláusulaROWS BETWEEN
para definir el rango de filas que queremos incluir en la suma, en este caso, las cuatro filas anteriores (4 PRECEDING AND 1 PRECEDING
).Esto te dará el resultado con la nueva columna
sum_4_prev
como se muestra a continuación:[![enter image description here][1]][1]
Espero que esto te ayude, ¡avísame si tienes alguna pregunta o inquietud!