我无法正确解释我将通过标题实现的目标。 我将通过例子解释:
id=1, value=2
id=2, value=37
id=3, value=783
id=4, value=3
...
假设我有一个类似于上面的表,其中包含自动增量ID和随机值, 我只会选择值之和小于40的第一行。 所以结果应该是id {1,2}
使用查询是否有解决方案或我需要一个程序? 谢谢大家
答案 0 :(得分:2)
一种方法是使用变量来计算累积和:
select t.*
from (select t.*, (@cume := @cume + value) as cume
from table t cross join
(select @cume := 0) vars
order by id
) t
where cume < 40;
答案 1 :(得分:1)
尝试这样的事情
set @value:=0;
select id, value from
(
select @value:=@value+value as new_value, id, value from table
) as t where new_value<40;