mysql创建模型_MySQL建立RFM模型

1.数据来源

charge_record表数据

提取代码如下:

# coding=utf-8

import pymysql

# 原数据库链接

db1 = pymysql.connect(

host=‘***‘,

port=3306, user=‘***‘,

passwd=‘***‘,

db=‘***‘,

charset=‘utf8‘)

cursor1 = db1.cursor()

# 定义查询语句

len1 = cursor1.execute(‘SELECT uid,amount,update_time FROM charge_record WHERE buss_type=0 AND charge_status=2 AND charge_prod_id IS NOT NULL‘)

# 迁移数据库链接

db2 = pymysql.connect(

host=‘127.0.0.1‘,

port=3306, user=‘root‘,

passwd=‘123456‘,

db=‘test‘,

charset=‘utf8‘)

cursor2 = db2.cursor()

# 批量插入语句

sql = ‘INSERT INTO charge_record(uid,amount,update_time) VALUE(%s, %s,%s)‘

# 导入全部数据

data2 = cursor1.fetchall()

cursor2.executemany(sql, data2)

# 提交到数据库

db2.commit()

# 关闭数据库连接

db1.close()

db2.close()

2.RFM值计算(基于MySQL)

-- 计算RFM的值

-- R值的计算

-- R值(近度)= (当前时间-最后一次消费时间)

SELECT uid,max(update_time) 最后一次消费时间,datediff("2020-05-15",max(update_time)) R值 FROM charge_record GROUP BY uid;

-- F值的计算

-- F值(频度)=(客户购买的频次)

SELECT uid,count(distinct(update_time)) F值 FROM charge_record GROUP BY uid;

-- M值的计算

-- M值(额度) = (一段时间的总额或平均额)

SELECT uid,count(distinct(update_time)) F值,sum(amount) 总额,round(sum(amount)/count(distinct(update_time)),2) M值 FROM charge_record GROUP BY uid;

-- 汇总计算

SELECT uid,datediff("2020-05-15",max(update_time)) R值,

count(distinct(update_time)) F值,round(sum(amount)/count(distinct(update_time)),2) M值

FROM charge_record GROUP BY uid;

image2020-5-15_19-18-57.png?version=1&modificationDate=1589541537000&api=v2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值