相关疑难解决方法(0)

MS Sql server中的累计总数

可能重复:
计算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)

提前致谢.

sql t-sql sql-server sql-server-2005 sql-server-2008

-1
推荐指数
1
解决办法
1万
查看次数