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
一旦您会发现连续购买之间的时间不同,如果有超过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