es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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!

Tags:  ,

Answer

  1. Avatar for 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 llamada sum_4_prev con la suma de la columna order_rate de las cuatro filas anteriores:

    SELECT 
       order_id, 
       order_date, 
       order_rate, 
       SUM(order_rate) OVER (ORDER BY order_date ROWS BETWEEN 4 PRECEDING AND 1 PRECEDING) AS sum_4_prev
    FROM 
       your_table;
    

    En esta consulta, utilizamos la cláusula OVER con la cláusula ORDER BY para definir la ventana en la que la función SUM trabajará. También utilizamos la cláusula ROWS 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!

Comments are closed.