Postgresql选择直到达到某个总量

use*_*059 10 sql postgresql select

我想知道我是否可以从以下问题得到任何帮助.

我有一个交易表(简化如下),我只想选择交易,直到我的金额达到一定金额.

Transactions

 id |   date   | amount 
----|----------|--------
 1  | 1/1/2012 |   2 
 2  | 2/1/2012 |   3 
 3  | 3/1/2012 |   4
 4  | 4/1/2012 |   20 
 5  | 5/1/2012 |   1 
 6  | 6/1/2012 |   2
Run Code Online (Sandbox Code Playgroud)

现在说我想在桌子上做一个选择,直到总数为6,即前两行,我该怎么做?

我想的可能是与自己和一些总和加入,但并没有真正到达任何地方.如果可能的话,我宁愿不使用任何功能.

还有类似的最小金额.

任何帮助将非常感激 :)

Ť

a_h*_*ame 18

select id, 
       date, 
       amount, 
       running_total
from (
    select id,
           date,
           amount,
           sum(amount) over (order by date asc) as running_total
    from transactions
) t
where running_total <= 6
Run Code Online (Sandbox Code Playgroud)