我有一个销售记录表,如下所示:
姓名 | 物品 | 行动 | 价格 |
---|---|---|---|
安 | 苹果 | 买 | 5.00 |
安 | 苹果 | 卖 | 6.00 |
安 | 面包 | 卖 | 9.00 |
鲍勃 | 苹果 | 买 | 5.00 |
鲍勃 | 盐 | 买 | 1.00 |
鲍勃 | 盐 | 买 | 1.00 |
鲍勃 | 盐 | 卖 | 2.00 |
sample_data: ([] Name: `Ann`Ann`Ann`Bob`Bob`Bob`Bob; Item: `Apple`Apple`Bread`Apple`Salt`Salt`Salt; Action: `Buy`Sell`Sell`Buy`Buy`Buy`Sell; Price: 5.00 6.00 9.00 5.00 1.00 1.00 2.00)
我的最终结果是获得至少被购买和出售过一次的名称和物品的组合。
我的思考过程是创建一个如下所示的表,该表收集每个名称-项目对的购买和销售数量:
姓名 | 物品 | 购买 | 卖 |
---|---|---|---|
安 | 苹果 | 1 | 1 |
安 | 面包 | 0 | 1 |
鲍勃 | 苹果 | 1 | 0 |
鲍勃 | 盐 | 2 | 1 |
然后,仅提取那些具有 >=1 购买和出售的名称-项目对:
姓名 | 物品 |
---|---|
安 | 苹果 |
鲍勃 | 盐 |
fby 可能是最简单的方法: