SQL过滤总和

时间:2013-08-22 02:16:03

标签: mysql sql

我怎么能用它的总和来过滤一组元素?假设我有:

id
1
2
3
4

是否有我可以使用的条款:

select * from numbers where sum = 6

请注意,该查询不会这样做,这是一个解释或多或少我的意思的例子。

这个条款会返回1,2和3吗?

2 个答案:

答案 0 :(得分:1)

我猜你想要累积和等于6.这是使用标准SQL的一种方法:

select id
from numbers n
where 6 = (select sum(n2.id) from numbers n2 where n2.id <= n.id);

编辑:

哎呀,倒退了:

select id
from numbers n
where 6 >= (select sum(n2.id) from numbers n2 where n2.id <= n.id);

然而,即使没有一个加起来恰好是6,这也会返回值。

答案 1 :(得分:0)

对于大小为2的元素集,您可以尝试类似:

select n.id as "ID1", nn.id as "ID2"
from t1 nn,
(select n.id, (6-n.id) as complete 
from t1 n ) n
where nn.id = n.complete
and nn.id != n.id

链接到fiddle