我遇到的情况是我需要计算同一列的两个连续行之间的差异。这是我的名为'orders'结构的表。
orderid type productsales
1002 Order 120
1002 Refund -35
1003 Order 199
1003 Refund -50
1004 Order 245
1005 Order 80
现在,我想要只选择那些订单类型为“订单”的同一orderids
之间的'productsales'差异的记录。 '退款'大于0
答案 0 :(得分:2)
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
您需要从另一个值中减去这些值。但是,由于您已将-
存储在我使用+
的退款中。