我的数据包括成功和失败交易。我只需要净计数i.e. success-failure = net
。 (仅使用sql)
id product txn_num amount
1 sale 6737 40
2 failure f6737 -40
3 sale 5635 70
4 sale 3467 80
5 failure 3467 -80
6 sale 3468 80
7 failure 3468 -80
我的数据不是结构化的。
考虑到txn_num
使用sql的变化,我想计算净额。
如果产品出现故障,则需要将其与销售行一起删除,并且不需要将金额包含在结果中。
但问题是,数据失败事务编号不以'f'符号开头。
解决此问题的唯一方法是比较amount
和txn_num
列,以获得最终结果。
仅使用sql解决它。
结果应为
count=1, Amount=70, product=sale, id=4
答案 0 :(得分:0)
取消交易时,新行的txn_num
为amount
,但txn_num
为负?
因此,您只需搜索包含单行或SUM(amount) <> 0
select
min(id), min(product), txn_num, sum(amount)
from tab
group by txn_num
having sum(amount) <> 0 -- or count(*) = 1
即可
MappedColumnName