查找 mysql 中同一列的两个连续行之间的差异

Find difference between two consecutive rows of same column in mysql

我遇到这样一种情况,我需要计算同一列的两个连续行之间的差异。这是我的 table 命名为 'orders' 的结构。

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

现在,我只想 Select 那些记录,其中相同 orderids 订单类型 'Order' 和 'Refund' 之间的 '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

您需要从另一个值中减去这些值。但是由于您在退款中存储了 -,我使用了 +.