gpt4 book ai didi

mysql - 删除相互交叉的行

转载 作者:行者123 更新时间:2023-11-29 10:07:31 25 4
gpt4 key购买 nike

我有一个结果集,其中包含; order_ids、该订单的总计以及其中的商品数量。

一些总计为负数(如果发生退款),另一些总计为正数。我想计算出 order_total 中未扣除负值的订单数量。

orders_id  order_total    products_quantity  customers_id  
--------- ------------- ----------------- --------------
1140898 -99.95830000 -1 459800
1140868 99.95830000 1 459800
1140867 99.95833333 1 459800
866932 -106.33333333 -2 459800
860100 125.08333333 3 459800
857864 106.33333333 2 459800

会导致

orders_id  order_total    products_quantity  customers_id  
--------- ------------- ----------------- --------------
1140867 99.95833333 1 459800
860100 125.08333333 3 459800

我尝试编写一个游标来迭代每个结果,存储最后一个 order_total 并检查当前行的差异。

只要负序位于正序之前或之后,此方法就有效。不幸的是,情况并非总是如此。

谁能解释一下我应该遵循什么方法来确保实现下面的输出?

最佳答案

根据你的描述,这个问题是不可能的。考虑:

orders_id  order_total    customers_id  
--------- ------------- --------------
1 -100 1
2 50 1
3 50 1
4 50 1

(我假设您只想考虑每个值仅影响特定客户的“净值”)

在上述情况下,orders_id=1 可能会被视为偏移 2 和 3,在输出中留下 4,3 4 在输出中留下 2,或者 2 和 4 在输出中留下 3。

如果负数行与一个或多个正数行的金额不完全匹配怎么办?即使某些负数的组合加起来等于正数的某些组合,您也需要尝试每种可能的组合 - 仅仅计算该算法的顺序就让我头疼(O(N!)^ 2 我认为)。

关于mysql - 删除相互交叉的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51612319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com