我有一个简单的表,有一些虚拟数据设置,如:
|id|user|value|
---------------
1 John 2
2 Ted 1
3 John 4
4 Ted 2
Run Code Online (Sandbox Code Playgroud)
我可以通过执行以下sql(MSSQL 2008)语句来选择运行总计:
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
Run Code Online (Sandbox Code Playgroud)
这会给我的结果如下:
|id|user|value|total|
---------------------
1 John 2 2
3 John 4 6
2 Ted 1 1
4 Ted 2 3
Run Code Online (Sandbox Code Playgroud)
现在是否可以只检索每个用户的最新行?结果将是:
|id|user|value|total|
---------------------
3 John 4 6
4 Ted 2 3
Run Code Online (Sandbox Code Playgroud)
我是以正确的方式来做这件事的吗?任何建议或新的路径都会很棒!