这是我的表:
Id Name Price Session
----------------------------------------
1 abcd 1000 07.00 AM
1 abcd 1000 07.00 AM
5 mnop NULL 12.00 AM
5 mnop NULL 12.00 AM
5 mnop 1000 12.00 AM
我希望这个结果:
Id Name Price Session
--------------------------------------
1 abcd 2000 07.00 AM
5 mnop 1000 12.00 AM
如何在特定行范围内对列Price
求和?
答案 0 :(得分:1)
在查询中包含group by
子句。所有未使用聚合函数的srlected列都在group by子句中列出。
Select id ,name ,session ,sum (price)
From table
Group by id, name, session
答案 1 :(得分:0)
没有group by
子句的其他方法是SUM()
.. over
SELECT DISTINCT
Id, Name,
SUM(Price) OVER(PARTITION BY ID, Name, Session) [Price],
[Session]
FROM <table>;
结果:
Id Name Price Session
--------------------------------------
1 abcd 2000 07.00 AM
5 mnop 1000 12.00 AM
答案 2 :(得分:0)
我认为你可以尝试使用SUM on Price并以GROUP BY结束。
GROUP BY的Microsoft文档: https://docs.microsoft.com/en-us/sql/t-sql/queries/select-group-by-transact-sql
一个简短的例子:
SELECT Id, Name, Session, SUM(Price) AS Price
FROM Table
GROUP BY Id, Name, Session