mysql按照客户对数据分类_数据分析—基于RFM用MySQL对客户进行深入分析

数据来源

理解数据

InvoiceNo:发票编号 ;每笔交易分配唯一的6位整数,而退货订单的代码以字母'c'开头

StockCode:产品编号;每个不同的产品分配唯一的5位整数

Description:产品描述;对每件产品的简略描述

Quantity:产品数量;每笔交易的每件产品的数量

InvoiceDate:交易日期;每笔交易发生的日期和时间

UnitPrice:单价(英镑);单位产品价格

CustomerID:顾客ID;每个客户分配唯一的5位整数

Country:国家;每个客户所在国家/地区的名称

提出问题

基于RFM模型提出一下问题:

1.客户维度:各类客户的占比为多少,是否正常?

2.时间维度:各类客户分别都在哪些月份购买产品?

3.区域维度:各类客户分别集中在哪些州/国/地区?

4.产品维度:各类客户集中购买的产品分别是哪些?

数据清洗

用python对数据进行清洗(此处省略)

构建模型

1.将利用python清洗的数据导出为csv表:gift_retail_online,将表导入MySQL中。

2.创建分析所需的新表

即:

地区表:online_country_state

价格区间表:online_price_range

客户分类表:online_customer_group

建表过程

①选出国家再人工进行查询得到online_country_state(地区表)

SELECT DISTINCT 国家 AS 国家 FROM gift_retail_online

将国家选出来,由于地区数据需要查询,所以导出国家再进行人工查询其中文名称、所属洲及在其所属洲的位置,部分表截图如下:

②创建临时表price再转化为新表online_price_range(价格区间表)

CREATE VIEW price AS

SELECT 产品编号,

(CASE WHEN 单价=0 THEN '赠品'

WHEN 单价<1 THEN '<1'

WHEN 单价<10 THEN '1-10'

WHEN 单价<50 THEN "10-50"

WHEN 单价<300 THEN "50-300"

WHEN 单价<1000 THEN "300-1000"

WHEN 单价<3000 THEN "1000-3000"

ELSE ">3000" END) AS 价格区间

FROM (SELECT * FROM gift_retail_online WHERE 单价>=0) AS a

3. 由于需要对客户分类

根据RFM模型,创建R_value、F_value、M_value三张临时表,再由三张临时表创建出临时客户分类表,再转化为新表online_

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值