我是SQL Server 2012的新手。我想创建一个新的累积列,但是这个列只是为了不同的名称而总结。
例如,如果我的名字具有以下值,我希望重复相应的重复名称值,以便累计总结:</ p>
James 200
Vicky 300
Jane 600
James 400
Vicky 700
新列的最终目标应具有类似于以下值列的值:
James 200
Vicky 300
Jane 600
James 600
Vicky 1000
答案 0 :(得分:2)
试试这个:
DECLARE @T TABLE (Names VARCHAR(50), Value INT);
INSERT INTO @T VALUES
('James', 200),
('Vicky', 300),
('Jane', 600),
('James', 400),
('Vicky', 700);
SELECT Names, SUM(Value) OVER (PARTITiON BY Names ORDER BY Value) Value
FROM @T
ORDER BY Value;
结果:
+=======+=======+
| Names | Value |
+=======+=======+
| James | 200 |
+-------+-------+
| Vicky | 300 |
+-------+-------+
| James | 600 |
+-------+-------+
<强> Demo 强>
注意:它的顺序不一样,如果你想要相同的顺序,你应该做@Lamak在评论中说的话,因为我们需要那个列。