达到总和后停止 SQL Select

Stop SQL Select After Sum Reached

我的数据库是 IBM i 的 Db2。

我有只读权限,所以我的查询只能使用基本 SQL select 命令。

============================================= =================

目标:

我想selecttable中的每条记录,直到金额列的总和超过预定的限制。

示例:

我想匹配 table 中的每个项目,直到“价格”列中匹配值的总和 >= $9.00。

想要的结果:

这可能吗?

您可以使用 sum 分析函数计算 运行 总价格,然后按其值过滤:

with a as (
  select
    t.*,
    sum(price) over(order by salesid asc) as price_rsum
  from t
)
select *
from a
where price_rsum <= 9
SALESID | PRICE | PRICE_RSUM
------: | ----: | ---------:
   1001 |     5 |          5
   1002 |     3 |          8
   1003 |     1 |          9

db<>fiddle here