用户的分群基于RFM(Recency, Frequency, Monetary)分析模型进行评分,具体如下:
- Recency(最近一次消费):用户最近一次购买商品的日期与今天相隔的时间。
- Frequency(消费频率):统计用户在历史交易记录中不同的活跃天数。
- Monetary(消费金额):计算每个用户的平均消费金额。
对于上述三个维度,分别使用NTILE(3)
函数将所有用户分为三等份,得到每个用户的Recency、Frequency和Monetary评分(1至3分)。然后,将这三个评分相加,得到每个用户的总评分。根据总评分对用户进行分群,规则如下:
- 5分以下为一档;
- 6到8分为一档;
- 9分为一档。
你的任务是编写SQL查询来实现这一需求,并使用REPEAT('■', cnt)
的方式展示各个分数段内用户的数量分布情况。例如,如果某个分数段有5个用户,则应输出■■■■■
。
mt_trx_rcd_f,餐饮商户团购消费记录表
cust_uid | trx_amt | mch_nm | mch_typ2 | trx_dt |
---|---|---|---|---|
MT10008 | 132 | 阿里山烘焙坊(亚贸店) | 面包甜点 | 2024-05-03 |
MT10000 | 53 | 星巴克(融创茂店) | 咖啡厅 | 2024-09-16 |
MT10007 | 334 | 老胶东小船海鲜 | 海鲜 | 2024-05-22 |
MT10004 | 358 | 一枚帅哥做的菜 | 海鲜 | 2024-09-15 |
MT10003 | 154 | 一枚帅哥做的菜 | 海鲜 | 2024-11-16 |
 成为会员,解锁300道大厂数分SQL真题
MySQL 8.0