我正在寻找从postgres数据库准备一个CSV文件并导入到R来进行一些机器学习/推理分析。
目标:拥有一张表格,其中包含每位客户(唯一身份证)和每个日期(例如2017-11-10)的记录,1表示购买事件,0表示否购买活动。
我开始使用generate_series:
SELECT
date(dd) as date,
c.id,
CASE WHEN pt.customer_id is not null then 1 else 0 end as customer_made_purchase
FROM generate_series ('2017-10-01'::date, '2017-12-01'::date, '1 day'::interval) dd
LEFT JOIN purchase_table as pt on date(dd) = date(pt.purchased_at)
LEFT JOIN customer_table as c on c.id = pt.customer_id
但是,生成的表格仅包含购买活动的行数(它不包括没有购买活动的客户)。考虑到它,它是有道理的,因为它只会为purchase_table中的客户生成记录。那么,我如何生成每个日期每个客户都有一行的表格?我知道这将是一个非常大的桌子,但我试图预测客户购买。也欢迎其他想法。
答案 0 :(得分:0)
一个解决方案可能是日期和您的用户列表中的交叉连接(也就是笛卡尔产品)。您可能希望通过在该日期之前加入用户创建日期和过滤记录来跟进。