【发布时间】:2018-06-20 06:58:25
【问题描述】:
如果您有一个订单表,是否可以选择所有金额总和小于 $1000 的记录,假设该表已按金额 desc 排序 示例:
id product_id amount
1 1 500
2 3 400
3 2 300
4 1 200
获取所有金额小于$1000的订单 那么它应该返回 1 & 2,因为 1 和 2 的数量之和是 900
获取所有金额小于$1300的订单 那么它应该返回 1,2,3 因为 1,2,3 的总和是 1200
【问题讨论】:
-
我猜,有可能,但据我所知,没有一个简单的查询。
-
是的,我的知识有限,所以我的第一个想法是让光标遍历所有记录并尝试先对其求和,但这是一个非常糟糕的想法并且性能很慢,只是想知道是否有任何更好的解决方案
-
id1 和 3 的总和也为 800 -
搜索运行总计 - 您将在子查询中创建运行总计,然后从中进行选择。
-
至少与 2 个产品的组合...这将是一个交叉连接,其中 id 不匹配...不知道如何为 n 多种组合执行此操作
标签: sql postgresql