我的一位同事遇到了一個問題,我試圖幫助他。SQL Server查詢在列A中更改時重置,在列中運行總計
他有包含以下數據(樣本數據),在SQL視圖: -
Category Value
Cat A 10
Cat A 20
Cat A 30
Cat B 15
Cat B 15
Cat C 10
Cat C 10
他想將列添加到其保持的運行總計值列的視圖。
此列必須在類別更改時重置運行總計。
所以輸出數據必須是這樣的: -
Category Value Running
Cat A 10 10
Cat A 20 30
Cat A 30 60
Cat B 15 15
Cat B 15 30
Cat C 10 10
Cat C 10 20
我們可以通過這樣的加盟表到自身獲得運行總計: -
select t1.id, t1.[count], SUM(t2.[count]) as sum
from TableA t1
inner join TableA t2 on t1.id >= t2.id
group by t1.id, t1.[count]
order by t1.id
問題是,我們不有一個ID列,當類別改變時,我們將如何指示運行總數重置?
哪個版本的合併?這對於SQL Server 2012來說非常簡單,因爲如果最終(完全)支持窗口函數。 –
不幸的是SQL Server 2005。 –
運行總量的順序如何計算?表中是否有日期字段? – Dibstar