gpt4 book ai didi

sql - T-SQL 使用 SUM 计算运行总数

转载 作者:行者123 更新时间:2023-12-04 16:40:27 24 4
gpt4 key购买 nike

我有一个简单的表,其中包含一些虚拟数据设置,例如:

|id|user|value|
---------------
1 John 2
2 Ted 1
3 John 4
4 Ted 2

我可以通过执行以下 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

这会给我这样的结果:
|id|user|value|total|
---------------------
1 John 2 2
3 John 4 6
2 Ted 1 1
4 Ted 2 3

现在是否可以只为每个用户检索最近的行?所以结果将是:
|id|user|value|total|
---------------------
3 John 4 6
4 Ted 2 3

我会以正确的方式解决这个问题吗?任何建议或遵循的新路径都会很棒!

最佳答案

不需要连接,您可以通过这种方式加快查询速度:

select id, [user], value, total
from
(
select id, [user], value,
row_number() over (partition by [user] order by id desc) rn,
sum(value) over (partition by [user]) total
from users
) a
where rn = 1

关于sql - T-SQL 使用 SUM 计算运行总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11981979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com