小编luk*_*012的帖子

使用SUM运行总计的T-SQL

我有一个简单的表,有一些虚拟数据设置,如:

|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)

我是以正确的方式来做这件事的吗?任何建议或新的路径都会很棒!

sql t-sql sql-server-2008

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

sql ×1

sql-server-2008 ×1

t-sql ×1