帮我编写 mySQL 查询语句,分析三个月复购周期,按月移动,非季度
时间: 2023-06-20 19:10:40 浏览: 123
求统计月分的查询语句
假设你有一个名为 orders 的表,其中包含以下列:
- order_id (订单ID)
- customer_id (客户ID)
- order_date (订单日期)
- order_amount (订单金额)
以下是查询语句:
```
SELECT
DATE_FORMAT(order_date, '%Y-%m') AS month,
COUNT(DISTINCT customer_id) AS repeat_customers,
COUNT(DISTINCT CASE WHEN order_date >= DATE_SUB(order_date, INTERVAL 3 MONTH) THEN customer_id END) AS three_month_repeat_customers,
COUNT(DISTINCT CASE WHEN order_date >= DATE_SUB(order_date, INTERVAL 2 MONTH) THEN customer_id END) AS two_month_repeat_customers,
COUNT(DISTINCT CASE WHEN order_date >= DATE_SUB(order_date, INTERVAL 1 MONTH) THEN customer_id END) AS one_month_repeat_customers
FROM
orders
WHERE
order_date >= '2022-01-01' AND order_date < '2022-04-01'
GROUP BY
month
```
这个查询语句将返回每个月的以下内容:
- `repeat_customers`: 在该月购买了至少两次的唯一客户数
- `three_month_repeat_customers`: 在该月和前三个月购买了至少两次的唯一客户数
- `two_month_repeat_customers`: 在该月和前两个月购买了至少两次的唯一客户数
- `one_month_repeat_customers`: 在该月和前一个月购买了至少两次的唯一客户数
请注意,此查询仅考虑了在查询期间内购买的客户。如果您想要考虑之前的购买行为,请相应地更改 WHERE 子句。
阅读全文