我有一個簡單的用一些虛擬的數據設置如表:T-SQL中使用SUM正在運行的總
|id|user|value|
---------------
1 John 2
2 Ted 1
3 John 4
4 Ted 2
我可以選擇通過執行以下SQL運行總數(2008 MSSQL)聲明:
SELECT a.id, a.user, a.value, SUM(b.value) AS total
FROM table a INNER JOIN table b
ON a.id >= b.id
AND a.user = b.user
GROUP BY a.id, a.user, a.value
ORDER BY a.id
這會給我造成這樣的:
|id|user|value|total|
---------------------
1 John 2 2
3 John 4 6
2 Ted 1 1
4 Ted 2 3
現在是有可能只檢索最新的EA行ch用戶?所以結果將是:
|id|user|value|total|
---------------------
3 John 4 6
4 Ted 2 3
我該怎麼做這個正確的方式?任何建議或新的路徑將是偉大的!
您只對最終結果感興趣,還是需要運行總計?你是否已經在某個地方存儲了該運行總數,還是正在使用它僅用於生成最終結果? * [您的最終結果可以更有效地創建,而無需使用運行總數。但是,如果您已將運行總量存儲在某處,則出於其他原因,當然可以使用該運行總量。] * – MatBailie 2012-08-16 07:14:34
您改變了接受的答案以提高性能,但是您尚未對上述查詢做出響應。請注意,您可以使用運行總計方法,通過*** not ***來提高性能。你會感興趣嗎?還是你需要運行總數中的所有結果?*? – MatBailie 2012-08-16 09:14:30
嗨Dems,我忙於工作,錯過了你的評論。我只是在總計和相關用戶之後,所以是的,我對提高性能感興趣。 – luke2012 2012-08-16 09:47:11