我有一张包裹表。每个包裹都有一个优先级和重量:
priority | weight
-----------------
1 4
2 3
3 5
4 1
5 3
我想将所有按优先级排序的包裹放入一个盒子中,直到达到盒子的最大允许重量。例如,如果我有一个最大允许重量为 10 的盒子,我会选择以下两个包裹:
priority | weight
-----------------
1 4
2 3
用 SQL 的话来说,我想select * from package order by priority
保持sum(weight) <= 10
.
这在 PostgreSQL 9.x 中可行吗?