我遇到了一种情况,我需要计算同一列中两个连续行之间的差异。这是我的“orders”结构表。

orderid   type     productsales
1002      Order    120
1002      Refund   -35
1003      Order    199
1003      Refund   -50
1004      Order    245
1005      Order    80

现在,我只想选择订单类型“order”和“Refund”的相同orderids之间的“productsales”差异大于0的记录

最佳答案

select orderid
from orders
group by orderid
having sum(case when `type` = 'Order' then productsales else 0 end) +
       sum(case when `type` = 'Refund' then productsales else 0 end) > 0

您需要从另一个值中减去这些值。但是因为你把-储存在退款里,所以我用了+

关于mysql - 在MySQL中查找同一列的两个连续行之间的差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28063955/

10-13 08:53