使用每个实例的共现创建列

问题描述

TRANSACTION_NUMBER UPC_CODE PURCHASED_UNIT copURCHASED_FREQUENCY
T123456 1040-1204-8612 2 2
T123456 4020-4104-2120 1 0
T123456 1040-1204-8612 3 2
T123456 2994-8182-9311 5 0
T191201 9879-8712-3456 2 2
T191201 2387-1928-1247 1 0
T191201 7417-2741-4245 4 0
T191201 9879-8712-3456 2 2

【另请参考假设表截图示例】

1

请参考上图:

假设数据包含诸如'TRANSACTION_NUMBER'(表示每笔交易的唯一实例)、'UPC_CODE'(表示唯一的产品标识符信息)等信息,和'PURCHASED_UNIT'(表示该特定产品的购买次数)。

我的目标是生成一个名为copURCHASED_FREQUENCY”的列。此列应包含有关在“交易编号”列指示的同一交易实例中共同购买成对 UPC 的次数的信息。

棘手的是我们不能在 R 和 Python 上执行这个操作;相反,该列应由 sql 操作创建。

我认为我想要创建的东西类似于共现实例。我现在想不出一个特定的方法来做到这一点,我会很感激你的帮助!如果你能帮上忙,那就太好了!

解决方法

这可以通过使用窗口函数来实现,如果你想为那些一次没有购买更多的人显示 0,你可以使用 case 语句:

select *,count(*) over (partition by TRANSACTION_NUMBER,UPC_CODE) as COPURCHASED_FREQUENCY
from youratble