如果您有一个订单表,那么可以选择金额小于1000美元的所有记录,假设该表已按量desc排序 例如:
id product_id amount
1 1 500
2 3 400
3 2 300
4 1 200
获取金额小于1000美元的所有订单 那么它应该返回1&amp;在图2中,因为1和2的总和是900 <1。 1000
获取金额小于1300美元的所有订单 那么它应该返回1,2,3因为1,2,3的总和是1200 < 1300
答案 0 :(得分:2)
您正在寻找累计金额:
select t.*
from (select t.*, sum(t.amount) over (order by t.amount desc) as cume_amount
from t
) t
where cume_amount < 1000;
答案 1 :(得分:1)
with a as (
select sum(amount) over (order by amount desc ) as amount_1 from test_order
)
select * from a where amount_1 < 1000;