Thu*_*oda 1 sql sql-server sql-server-2014
我有一张桌子,如下图所示
ID | PName | Price
___+_______+______
1 |some |2000
2 |some |3000
3 |some |250
Run Code Online (Sandbox Code Playgroud)
现在我需要查询获得以下结果
ID | PName | Price |Total Price
___+_______+________+____________
1 |some |2000 |2000
2 |some |3000 |5000
3 |some |250 |5250
Total Price= Price + Total Price
Run Code Online (Sandbox Code Playgroud)
如何使用sql查询获得上述结果
Gor*_*off 10
你似乎想要一个累积的总和.支持如下:
select t.*,
sum(price) over (order by id) as total_price
from t;
Run Code Online (Sandbox Code Playgroud)
自SQL Server 2012以来,SQL Server一直支持这种ANSI标准语法.
在早期版本中,您可以使用相关子查询:
select t.*,
(select sum(t2.price)
from t t2
where t2.id <= t.id
) as total_price
from t;
Run Code Online (Sandbox Code Playgroud)
编辑:
正如John建议的那样,如果你想为每个求和一个单独的和pname,那么语法将是:
select t.*,
sum(t.price) over (partition by p.name order by t.id) as total_price
from t;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2091 次 |
| 最近记录: |