问题描述
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 |
【另请参考假设表截图示例】
请参考上图:
假设数据包含诸如'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