Ich habe eine einfache Tabelle mit einigen Dummy-Daten Setup wie:T-SQL mit SUM für eine laufende Gesamt
|id|user|value|
---------------
1 John 2
2 Ted 1
3 John 4
4 Ted 2
ich eine laufende Summe durch Ausführen der folgenden SQL (MSSQL 2008) wählen kann Anweisung:
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
Das wird mir geben Ergebnisse wie:
|id|user|value|total|
---------------------
1 John 2 2
3 John 4 6
2 Ted 1 1
4 Ted 2 3
Jetzt ist es möglich, nur die letzten Zeilen für ea abrufen ch Benutzer? Also wäre das Ergebnis:
|id|user|value|total|
---------------------
3 John 4 6
4 Ted 2 3
Gehe ich das richtig? irgendwelche Vorschläge oder ein neuer Weg zu folgen wäre großartig!
Sind Sie nur am Endergebnis interessiert, oder benötigen Sie auch die laufende Summe? Speichern Sie diese laufende Summe bereits irgendwo oder verwenden Sie sie nur, um Ihr Endergebnis zu generieren? * [Ihr Endergebnis kann effizienter erstellt werden, ohne eine laufende Summe zu verwenden. Aber, wenn Sie bereits die laufende Summe irgendwo gespeichert haben, kann es aus anderen Gründen sicherlich verwendet werden.] * – MatBailie
Sie haben Ihre akzeptierte Antwort zur Verbesserung der Leistung geschaltet, aber Sie haben auf meine obige Anfrage nicht geantwortet. Beachten Sie, dass Sie die Leistung verbessern können, indem Sie *** *** mit der Methode "Laufende Summe" verwenden. Wäre das für Sie interessant oder benötigen Sie auch alle Ergebnisse in der laufenden Summe *? – MatBailie
Hallo Leute, ich arbeitete fleißig und vermisste deinen Kommentar. Ich bin erst nach dem Total und dem damit verbundenen Benutzer, also ja ich bin an verbesserter Leistung interessiert. – luke2012