我有一张这样的table:
+----+--------+
| id | amount |
+----+--------+
| 1 | 20 |
| 2 | 30 |
| 3 | 10 |
| 4 | 50 |
| 5 | 5 |
+----+--------+
如果我有价值的话 set @amount = 75;
我想得到最大的 amount
这就足够了。所以在这种情况下 id
s:会的 4,2
即使这意味着 80
.
伪代码:
pop集合中的最大值<= @amount
把身份证放进去 arr
如果总和< @amount
转到步骤1。
打印 arr
2条答案
按热度按时间roejwanj1#
您可以使用累积和:
在mysql 8.0之前的版本中,一种方法是关联子查询:
g52tjvyc2#
我不确定您的用例,可能可以通过以下方式完成:
否则需要在存储过程中使用游标:
代码没有被检查过,很简单。希望这能有所帮助。