【发布时间】:2020-01-27 21:59:28
【问题描述】:
我有一个在 Magento(1.9) 上运行的网站,并且需要了解客户再次购买相同产品的平均时间以及购买相同产品的客户百分比。
订单表(Sales_flat_order) - 包含订单详情 列 - order_id、Created_date、Customer_email
Items 表(Sales_Flat_Order_item) - 特定订单中的项目,如果用户购买 6 个项目,则项目表将有 6 个具有相同 order_id 的条目。 列 - items_id,Order_id(FK),item_sku(不同的产品)
下面是我加入了按电子邮件 ID 过滤的特定客户的订单和商品表的示例数据。
例如 order_id "92224" 有 4 行表示在该订单中购买了 4 件商品,item_sku 指的是商品名称/其唯一 ID。
现在我想找出再次购买相同产品的平均时间。所以在订单“98651”中,用户购买了第一个订单中的产品 items_sku("2996")。所以平均时间将是这两个订单之间的日期差。
以下是我面临的困难,
1) 由于每个订单可以包含多个产品,因此我如何将商品行与之前的订单商品进行比较。我尝试使用 LIKE 和 ILIKE,但它似乎不起作用并尝试使用 STR_AGG(item_sku,' ,') 与 LIKE 但没有找到任何结果。
2) 不仅针对特定客户,还需要针对每一位客户。
Order_id Order_date Item_sku
92224 "2016-11-11 17:18:15" "3001"
92224 "2016-11-11 17:18:15" "2933"
92224 "2016-11-11 17:18:15" "2992-config"
92224 "2016-11-11 17:18:15" "2996"
94926 "2016-11-25 10:01:30" "3008"
98651 "2016-12-14 18:11:16" "2992-config"
98651 "2016-12-14 18:11:16" "2996"
99645 "2016-12-20 13:00:34" "3001"
99645 "2016-12-20 13:00:34" "2933"
114578 "2017-02-28 15:32:54" "2931"
114578 "2017-02-28 15:32:54" "0294"
114578 "2017-02-28 15:32:54" "0297"
114578 "2017-02-28 15:32:54" "0296"
114578 "2017-02-28 15:32:54" "2992-config"
131754 "2017-05-15 17:23:35" "3296"
131968 "2017-05-16 18:30:52" "3300"
133186 "2017-05-22 14:03:07" "3004"
133186 "2017-05-22 14:03:07" "3069-bio"
133186 "2017-05-22 14:03:07" "3421-bio-config"
137484 "2017-06-13 14:07:28" "3605"
137484 "2017-06-13 14:07:28" "3604"
141709 "2017-07-03 16:20:30" "3603"
141709 "2017-07-03 16:20:30" "3606"
141709 "2017-07-03 16:20:30" "2936"
141709 "2017-07-03 16:20:30" "3422-bio"
141977 "2017-07-04 16:31:37" "2936"
145194 "2017-07-17 15:22:41" "3603"
145194 "2017-07-17 15:22:41" "3604"
151651 "2017-08-11 11:43:38" "3809"
161334 "2017-09-14 15:53:30" "3670"
161334 "2017-09-14 15:53:30" "3604"
161334 "2017-09-14 15:53:30" "3603"
任何指导都会有很大帮助。我使用 PostgreSQL 作为我的数据库。
【问题讨论】:
标签: postgresql magento magento-1.9