如何使用mysql识别客户购买间隔? 我想确定客户购买间隔,以便我可以将标签分配给各种客户(大量,冷等)。我们的销售数据提供了发票日期,我很熟悉...

问题描述 投票:0回答:1

Invoice 1 - 2024-06-01 Invoice 2 - 2024-07-15 Invoice 3 - 2024-09-04 Invoice 4 - 2024-10-04

customer2(不会被归类为高体积)

Invoice 1 - 2024-06-05 Invoice 2 - 2024-09-01 Invoice 3 - 2024-12-04 Invoice 4 - 2025-01-12

可以使用哪些功能来解决问题?

限制了MySQL的经验。我将继续调查各种参考网站上的日期和时间功能,以查看我能找到的内容。谢谢您在此问题上的帮助。
    

这是基于假设的,并且您共享的样本数据有限。您可以在每次购买客户之间找到时间差,并检查连续购买之间的时差是否在2个月内。如果差异在2个月内将它们标记为“高卷”,否则为“冷”。
LEAD(invoice_date) OVER (PARTITION BY customer_id ORDER BY invoice_date)

这个组相似的客户,然后在每行发票日期给出下一个发票,因此您可以找到连续购买之间使用

TIMESTAMPDIFF
mysql date time intervals
1个回答
0
投票

一旦您会发现连续购买之间的时间不同,如果有超过2个月的时间差距,则该客户被标记为冷标记,否则“高容量”。

CASE WHEN MAX(month_gap_invoice) > 2 THEN 'Cold' ELSE 'High Volume' END

样本查询

WITH month_gap AS ( SELECT customer_id, TIMESTAMPDIFF(MONTH, invoice_date, LEAD(invoice_date) OVER (PARTITION BY customer_id ORDER BY invoice_date)) AS month_gap_invoice FROM sales ) SELECT customer_id, CASE WHEN MAX(month_gap_invoice) > 2 THEN 'Cold' ELSE 'High Volume' END AS customer_category FROM month_gap GROUP BY customer_id;

输出

customer_id

customer_category

1高音量2 -cold
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.