Utilidad de las funcione Sum en sql server cuando se utilizan dos veces SUM SUM: Suma con acumulado en sql por registros anteriores
Como crear una suma con acumulado en sql
- Cursores
- CTE
- Ciclos While
- SubConsultas
- SelfJoins
- Etc
Sin embargo, la ventaja de esta forma de sumar con acumulado se centra en su simplicidad la cual es una ventaja para mantenimiento de código y lectura del mismo, adicionalmente el rendimiento y perfomance
Ejemplo didáctico
Clausula OVER
Determina las particiones y el orden de un conjunto de filas antes de que se aplique la función de ventana asociada. Es decir, la cláusula OVER define una ventana o un conjunto de filas definido por el usuario en un conjunto de resultados de la consulta. Una función de ventana calcula entonces un valor para cada fila de la ventana. Puede utilizar la cláusula OVER con funciones para calcular valores agregados tales como medias móviles, agregados acumulados, totales acumulados o N elementos superiores por resultados del grupo.
1 2 3 4 5 6 7 8 9 |
SELECT H.CustomerID , H.TotalDue , SUM(SUM(H.TotalDue)) OVER (ORDER BY H.SalesOrderID ASC) AS Acumulado FROM [Sales].[SalesOrderHeader] H GROUP BY H.CustomerID , H.TotalDue , H.SalesOrderID GO |
- https://docs.microsoft.com/es-es/sql/t-sql/functions/sum-transact-sql?view=sql-server-2017
- https://docs.microsoft.com/en-us/sql/t-sql/queries/select-over-clause-transact-sql?view=sql-server-2017
Si tienen dudas en la implementación pueden contactarme al correo jmmana@gmail.com
Excelente aporte Juan. ¿Este tipo de consultas funcionan en igual de condiciones para sistemas que ya tienen sus bases de datos estructurados y sistemas que apenas se están fundamentando a nivel de negocio y normalizacion? ó se debe crear comparaciones sucesivas a nivel de identidad de registros?
Gracias, quedo atento.
Este tipo de consultas funcionan sin importar el ambiente, si validas el plan de ejecución tiene ventajas frente a cursores cte y selfjoin porque no es recursivo
Muy buena explicación. Me ayudó con una app que estoy desarrollando. Saludos y adelante !!
Gracias por tu comentarios, para mi es muy valiso saber que ayudo a los demas y segir creando contenido de calidad
Muchas gracias por el aporte, por favor me puedes ayudar con un post para sacar el balance con operaciones de saldo inicia + Debitos – Creditos = Balances.
Es algo como un estado de cuenta de un cliente
Saludos cordiales