T-SQL mit SUM für eine laufende Summe

Ich habe eine einfache Tabelle mit einigen Dummy-Dateneinstellungen wie:

|id|user|value|
---------------
 1  John   2
 2  Ted    1
 3  John   4
 4  Ted    2

Ich kann eine laufende Summe auswählen, indem ich die folgende SQL-Anweisung (MSSQL 2008) ausführe:

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

Dies gibt mir Ergebnisse wie:

|id|user|value|total|
---------------------
 1  John   2     2
 3  John   4     6
 2  Ted    1     1
 4  Ted    2     3

Ist es jetzt möglich, nur die neuesten Zeilen für jeden Benutzer abzurufen? Das Ergebnis wäre also:

|id|user|value|total|
---------------------
 3  John   4     6
 4  Ted    2     3

Gehe ich das richtig an? Anregungen oder einen neuen Weg zu folgen wäre toll!

Antworten auf die Frage(5)

Ihre Antwort auf die Frage