SQL - 根据SUM条件选择记录数

时间:2018-01-11 01:49:10

标签: sql postgresql

如果您有一个订单表,那么可以选择金额小于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

2 个答案:

答案 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;