可能重复:
计算SqlServer中的运行总计
我需要在ms-sql server中获取一列的累积(运行)总数.即如果存在名为"Marks"的列,则对应于每行累积和将是当前行和前一行的总和.我们可以在不使用连接的情况下获得结果吗?因为我的查询非常大.
我已经包含了一个示例表和数据:
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;
Run Code Online (Sandbox Code Playgroud)
预期结果:

在oracle中,它很容易编写如下:
SELECT
STUDENT_NAME,
MARKS,
SUM(MARKS) OVER (ORDER BY STUDENT_NAME) CUM_SUM
FROM SCORE_CHART
ORDER BY STUDENT_NAME;
Run Code Online (Sandbox Code Playgroud)
提前致谢.