Tengo una tabla sencilla total acumulado con algún tipo de configuración de datos ficticios como:T-SQL con SUM para un
|id|user|value|
---------------
1 John 2
2 Ted 1
3 John 4
4 Ted 2
puedo seleccionar un total acumulado ejecutando el siguiente sql (MSSQL 2008) declaración:
SELECT a.id, a.user, a.value, SUM(b.value) AS total
FROM table a INNER JOIN table b
ON a.id >= b.id
AND a.user = b.user
GROUP BY a.id, a.user, a.value
ORDER BY a.id
Esto me dará resultados como:
|id|user|value|total|
---------------------
1 John 2 2
3 John 4 6
2 Ted 1 1
4 Ted 2 3
Ahora es posible recuperar sólo los más recientes filas de EA ch usuario? Entonces, el resultado sería:
|id|user|value|total|
---------------------
3 John 4 6
4 Ted 2 3
¿Estoy haciendo esto de la manera correcta? cualquier sugerencia o un nuevo camino a seguir sería genial!
¿Está interesado únicamente en el resultado final, o necesita el total acumulado también? ¿Ya está almacenando ese total acumulado en alguna parte, o lo está usando solo para generar su resultado final? * [Su resultado final se puede crear de manera más efectiva sin usar un total acumulado. Pero, si ya tiene el total acumulado almacenado en alguna parte, por otros motivos, sin duda puede usarse.] * – MatBailie
Usted configuró su respuesta aceptada para mejorar el rendimiento, pero no ha respondido a mi consulta anterior. Tenga en cuenta que puede mejorar el rendimiento por *** no *** utilizando el método de total acumulado. ¿Le interesaría eso o necesita todos los resultados en total * también *? – MatBailie
Hola demócratas, estuve muy ocupado trabajando y perdí tu comentario. Solo busco el total y el usuario asociado, entonces sí, estoy interesado en un mejor rendimiento. – luke2012