我有一张表,如下所示
ID | PName | Price
___+_______+______
1 |some |2000
2 |some |3000
3 |some |250
现在我需要查询获得以下结果
ID | PName | Price |Total Price
___+_______+________+____________
1 |some |2000 |2000
2 |some |3000 |5000
3 |some |250 |5250
Total Price= Price + Total Price
如何使用sql查询获得上述结果
答案 0 :(得分:9)
您似乎想要累积总和。这支持为:
select t.*,
sum(price) over (order by id) as total_price
from t;
自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;
编辑:
正如John建议的那样,如果你想为每个pname
分别求和,那么语法就是:
select t.*,
sum(t.price) over (partition by p.name order by t.id) as total_price
from t;