2017-09-04 9 views
0

私はSQL Server 2012の新機能です。新しい累積列を作成したいと思いますが、この列は別名でのみ集計されます。私は以下の値を持つ名前を持っている場合、私は繰り返し名前の繰り返しに対応する値をしたいと思います例えば別の列に基づいて累積列を作成する方法

は累積的にまとめることにする。

James  200 
Vicky  300 
Jane   600 
James  400 
Vicky  700 

値を持っている必要があり、新しい列の最終目標それは以下の値の列のように見える:

James  200 
Vicky  300 
Jane  600 
James  600 
Vicky  1000 
+5

累積合計が必要な場合は、行の順番が別の列が必要です。 – Lamak

+0

これを試すには、https://stackoverflow.com/questions/2120544/howでグループに名前欄を追加してください。 〜累積合計 – sawbeanraz

答えて

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何をすべき、同じ順序ではありません。

関連する問題