如何根据总和值选择特定记录

时间:2018-08-23 10:30:09

标签: sql sql-server

我有以下SQL表

ID Key Value
1  A   10
2  A   20
3  B   50
4  B   2
5  C   30
6  c   20

我需要从该表中选择所有记录,其中Value为25的总和。因此,对于键A,应列出ID为1和2的记录。对于键B,记录ID为3,对于键C,记录ID为5。

我正在尝试类似的操作,但这给出了错误,仍在尝试。

select ID, Key, Value
from T
where Sum(value)> 25
Group by ID, Key

有什么建议可以得到想要的组合吗?

编辑:添加了服务器名称。

1 个答案:

答案 0 :(得分:2)

我认为您希望所有具有给定键值的行一直到第一次运行的总和超过25。使用累积总和函数:

select t.*
from (select t.*, sum(value) over (partition by key order by id) as running_value
      from t
     ) t
where running_value - value < 25;