获得与给定数量oracle相关的金额

时间:2017-12-03 13:41:30

标签: sql oracle

我有桌子

Table A 

 1. 10
 2. 20
 3. 30

我希望在设置50返回表A中的前两条记录时获取Oracle查询。

当设置60时获取所有记录 当设置70时为空。

感谢..

1 个答案:

答案 0 :(得分:0)

我想你想要累积总和:

select t.*
from (select t.*, sum(t.col2) over (order by t.col1) as running_sum
      from t
     ) t
where running_sum < 50;

这将返回输入70的所有记录,但这似乎是最合乎逻辑的事情。您可以添加另一个条件:

select t.*
from (select t.*, sum(t.col2) over (order by t.col1) as running_sum,
             sum(t.col2) over () as total_sum
      from t
     ) t
where running_sum < 50 and total_sum <= 50;

但这对我来说并没有多大意义。