我的记录集看起来像这样:
Group Number Amount
A 11 10
A 12 -15
A 13 20
B 21 -10
B 22 15
B 23 -20
我想要的是一个查询,如果该组的总量大于零,则返回组内的所有行 对于A组,总数为15,因此我希望A组的所有记录都返回。 对于B组,总数为-15,因此不应从B组返回任何记录。
答案 0 :(得分:1)
试试这个:
select * from yourTable where [Group] in
(select [Group] from yourTable group by [Group] having SUM(Amount) > 0)
答案 1 :(得分:1)
您可以使用SUM
with OVER
子句来完成此任务:
SELECT [Group], Number, Amount
FROM (
SELECT [Group], Number, Amount,
SUM(Amount) OVER (PARTITION BY [Group]) AS sumOfGroup
FROM mytable ) t
WHERE t.sumOfGroup > 0