在SQL中标识记录集上的父事务

时间:2016-11-07 20:32:50

标签: sql oracle

我有一份交易及其付款清单。我正在寻找交易的父支付来识别重复的客户。例如,我的列表如下:

   Transaction  Payment1    Payment2    Payment3    Bucket
       100         A           B          C             P1
       110         B                                    P1
       120         D           E                        P2
       130         D           E          F             P2
       140         C           B                        P1
       160         F           K                        P2
       170         C           A                        P1

父交易是最终结果。它不一定是A和D总是,它在找到唯一值时是最好的,例如:如果我们可以轻松地推导它,它可以是B或C.

我尝试过迭代,首先将第3列与col1和col2值进行比较,然后将第一个发现的Col1派生为父级。但有些根本不起作用。我有超过百万笔交易来获得父付款以识别独特的客户。

示例是针对交易100,我使用了3种不同的支付卡(如Visa,万事达卡,美国运通卡,借记卡,礼品卡)。我可能在任何其他交易中使用任何这些卡。例如,付款B,我在交易110中使用了B.因此100和110应该在同一桶中。对于交易140和170,我使用了付款C,B& C,A。所有这些卡都来自同一个人。因此,所有这些交易应该在相同的桶中。我想确定那个桶。让我们将所有这些交易命名为P1,如果我在P1上查询,我应该得到所有这些交易。同样适用于其他交易集。

1 个答案:

答案 0 :(得分:0)

好的谢谢..我想出了一个解决方案,在R中编写了一个函数,在R中获取了数据并编写了一个循环并执行了识别父事务的逻辑并将其放回数据库中。由于它是数百万条记录,因此执行需要2天,但准确无误。