所以,我的表是:
数量……
可以使用window函数:
select uid, code, qty
from (select t.*, sum(qty) over(order by uid) as qtysum
from t
) t
where qtysum <= 10;
可以使用累加和。要获取超过10的第一行:
select t.*
from (select t.*,
sum(qty) over (order by uid) as running_qty
from t
) t
where running_qty - qty < 10;
如果您想要第一个达到阈值10的行:
select t.*
from (select t.*,
sum(qty) over (order by uid) as running_qty
from t
) t
where running_qty - qty < 10 and
qty >= 10;