Sql server 如何获取一个查询,以根据总数返回某些记录
我有一个记录集,看起来像这样:Sql server 如何获取一个查询,以根据总数返回某些记录,sql-server,Sql Server,我有一个记录集,看起来像这样: 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组返回任何记录。尝试以下方法
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组返回任何记录。尝试以下方法:
select * from yourTable where [Group] in
(select [Group] from yourTable group by [Group] having SUM(Amount) > 0)
您可以使用子句来完成以下操作:
SELECT [Group], Number, Amount
FROM (
SELECT [Group], Number, Amount,
SUM(Amount) OVER (PARTITION BY [Group]) AS sumOfGroup
FROM mytable ) t
WHERE t.sumOfGroup > 0
这将是最简单的解决方案