Tutoriales

suma acumulativa de SQL

En SQL, la suma acumulativa se refiere a un método que nos permite calcular el total acumulado de una columna numérica en una tabla de base de datos. Las sumas acumuladas entran en juego en una variedad de escenarios, como el seguimiento del progreso o el cálculo de un promedio móvil de un valor determinado.

En este tutorial, aprenderemos cómo implementar y utilizar sumas acumulativas en SQL utilizando varios métodos y técnicas.

muestra

Para comprender mejor cómo implementar y utilizar sumas acumulativas, primero configuremos una tabla básica con datos de muestra. Esto nos permite demostrar de forma rápida y eficiente en este artículo cómo funcionan todos los métodos.

Primero cree una tabla básica para almacenar información del producto.

Crear productos de mesa (
Clave primaria INT de ID de producto,
Nombre del productoVARCHAR(255),
precio decimal(10, 2)
);

Esto debería crear una nueva tabla llamada «productos» que almacena los ID de los productos, los nombres de los productos y los precios de cada producto.

Luego podemos continuar agregando datos de muestra, como se muestra en el siguiente ejemplo de declaración de inserción:

Insertar producto (ID del producto, nombre del producto, precio)
valores
(1, «Código de estudio visual», 10:00),
(2, «Palabras nobles», 80.00),
(3, «PyCharm Edición Profesional», 199.00),
(4, 'IDE de eclipse', 30:00),
(5, «IntelliJ IDEA Edición definitiva», 699.00),
(6, «Escritorio GitHub», 20:00),
(7, «Software Gila», 10:00),
(8, 'Xcódigo', 660.00),
(9, 'NetBeans', 0.00),
(10, 'átomo', 60.00);

NOTA: Los datos aportados son completamente ficticios. No representa el precio real de ningún artículo listado.

La tabla de resultados es la siguiente:

Suma acumulativa de SQL (autounión)

Una de las técnicas que podemos utilizar para realizar una suma acumulativa en una columna determinada es utilizar el método de autounión. Una de las ventajas de este enfoque es que funciona con casi cualquier base de datos SQL, incluso aquellas que no admiten funciones de Windows.

Tome la tabla anterior «Productos» como ejemplo. Podemos construir una suma acumulativa de la columna de precios como se muestra en la siguiente consulta:

elegir
p1.product_id,
p1.
p1.
y(p2.Precio) AS suma acumulada
de
Producto p1
participar
Producto p2
existir
p1.id_producto >= p2.id_producto
Agrupar por
p1.product_id,
p1.
p1.Precio
Base del pedido
p1.product_id;

¿Notaste cómo funciona la consulta? Si no, síguenos mientras te lo explicamos paso a paso.

En la consulta de ejemplo dada, primero creamos dos alias «p1» y «p2» para la tabla «productos», lo que nos permite realizar una autounión.

Luego procedemos a unir «p1» y «p2» con la condición de que el «product_id» de «p1» sea mayor o igual que el «product_id» de «p2».

En el siguiente paso, llamamos a la función sum(), que básicamente calcula la suma acumulada de los precios de cada fila.

Finalmente, usamos «product_id», «product_name» y «price» para agrupar y ordenar los resultados.

Después de hacer esto, deberíamos obtener la suma acumulada para cada registro, como se muestra en la tabla de resultados, que se ve así:

Como puede ver, obtenemos la suma de todas las filas anteriores. La última fila debe contener la suma de todas las filas anteriores.

Suma acumulativa de SQL (función de ventana)

Una forma más eficaz y práctica de calcular sumas acumuladas en SQL es utilizar funciones de ventana cuando sean compatibles.

Si tiene una base de datos como SQL Server, PostgreSQL o MySQL 8.0 y superior, este es el método más útil y recomendado para determinar la suma acumulada de una columna determinada.

Eche un vistazo al ejemplo que se muestra a continuación:

elegir
ID del Producto,
nombre del producto,
precio,
y(precio) Superar (Ordenar por ID de producto) AS suma acumulada
de
producto;

En este ejemplo, primero seleccionamos los campos «product_id», «product_name» y «price» de la tabla «products».

Luego usamos la función SUM() como función de ventana usando la cláusula OVER.

En la cláusula OVER, especificamos la cláusula ORDER BY, que define el orden en el que se calcula la suma acumulativa.

Esto debería devolver un resultado similar al siguiente:

Notarás que usar funciones de ventana es más coherente, eficiente y legible que usar autouniones.

en conclusión

En este tutorial, aprendimos todo sobre la suma acumulativa en SQL. También mostramos cómo utilizar autouniones y funciones de ventana para realizar sumas acumulativas en SQL.

LEER  Medidas de seguridad en Internet para la seguridad de los casinos en línea

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba