我有一个包含客户购买的 Oracle 数据库。(一条记录是一次购买)客户在每次购买时一次又一次地提供他们的个人数据。因此,由于输入错误、地址更改等可能存在差异。现在我必须识别属于同一客户的购买。
为此,我根据简单的规则创建了 3 个不同的匹配代码。我的桌子现在看起来像这样:
+-------------+-------------+--------------+------- ------+--------------+ | PURCACHE_ID | MATCHCODE_1 | MATCHCODE_2 | MATCHCODE_3 | 客户 ID | +-------------+-------------+--------------+------- ------+--------------+ | | | | | | | 1 | 1 | 乙 | x | | | | | | | | | 2 | 1 | 一个 | 是 | | | | | | | | | 3 | 2 | c | x | | | | | | | | | 4 | 3 | 一个 | z | | | | | | | | | ... | ... | ... | ... | ... | +-------------+-------------+--------------+------- ------+--------------+
我想要做的是为每次购买分配一个 customer_id。相同的 customer_id 将分配给任何匹配代码等于另一个的购买。
因此,例如购买 1 和购买 2 将收到相同的 customer_id,因为匹配代码 1 相同。另外购买 2 和购买 4 属于同一客户,因为 Matchcode_2 相同。因此,即使购买 1 和购买 4 将收到相同的 customer_id,尽管它们的匹配代码都不相等。
Customer_id 可以是一个从 1 开始的简单数字。
制作 Customer_Id 的 SQL 代码是什么?