Łączna suma w serwerze MS Sql [duplikat]
Możliwy duplikat:
Oblicz sumę bieżącą w SqlServer
Muszę uzyskać łączną (działającą) sumę kolumny w serwerze ms-sql. To znaczy. jeśli istnieje kolumna o nazwie „Marks”, to odpowiadająca skumulowanej sumie każdego wiersza będzie sumą bieżących i poprzednich wierszy. Czy możemy osiągnąć wynik bez użycia złączeń? Ponieważ moje zapytanie jest dość duże.
Dołączyłem przykładową tabelę i dane:
CREATE TABLE "SCORE_CHART"
(
"STUDENT_NAME" NVARCHAR(20),
"MARKS" INT
)
INSERT INTO SCORE_CHART (STUDENT_NAME, MARKS) VALUES ('STUD1', 95);
INSERT INTO SCORE_CHART (STUDENT_NAME, MARKS) VALUES ('STUD2', 90);
INSERT INTO SCORE_CHART (STUDENT_NAME, MARKS) VALUES ('STUD3', 98);
SELECT STUDENT_NAME, MARKS FROM SCORE_CHART;
Spodziewany wynik:
W wyroczni łatwo jest pisać tak:
SELECT
STUDENT_NAME,
MARKS,
SUM(MARKS) OVER (ORDER BY STUDENT_NAME) CUM_SUM
FROM SCORE_CHART
ORDER BY STUDENT_NAME;
Z góry dziękuję.