Mysql 用户行为分析

该博客详细介绍了使用MySQL进行用户行为分析的过程,包括数据导入、建表、用户消费行为统计。通过分析不同月份的下单人数、回购率、复购率、性别消费差异和年龄段消费差异,以及RFM用户价值模型,揭示了用户消费行为的特征和价值群体划分。

目录

数据导入

1-建表
2-导入数据

用户消费行为分析

1-统计不同月份的下单人数

2-统计用户不同月份的回购率和复购率

3-统计不同性别的消费频次是否有差异

4-统计不同性别的用户消费金额是否有差异

5-统计不同年龄段的用户消费金额是否有差异

6-RFM 用户价值分析

建表

数据库下建立用户表userinfo 和 订单表 orderinfo

建orderinfo表

create table if not EXISTS ORDERINFO(
	ORDERID varchar(10) NUll, #--订单ID,主键
    USERID int(10) NULL,#--用户ID 可以用户表进行关联
    ISPAID varchar(10) NULL,#--是否支付
    PRINCE float(10) NULL,#--订单价格
    PAIDTIME varchar(10) NULL #--订单支付时间
 );

建表userinfo

create table USERINFO(
	USERID varchar(10) NULL, #用户ID  主键
    SEX varchar(10) NULL,#性别PAIDTIME
    BIRTH varchar(10) NULL #出生日期
 );

数据导入

cmd 命令可以快速导入数据 ,不建议workbench
导入文件 建议放在默认文件夹
导入order 表

load data infile 'D:/ProgramData/MySQL/MySQL Server 8.0/Uploads/order_info_utf.csv' 
into table first.orderinfo fields terminated by ',' optionally enclosed by '' escaped by '' 
lines terminated by '\r\n';

导入user 表

load data infile 'D:/ProgramData/MySQL/MySQL Server 8.0/Uploads/user_info_utf.csv' 
into table first.orderinfo fields terminated by ',' optionally enclosed by '' escaped by '' 
lines terminated by '\r\n';

用户消费行为分析

1-统计不同月份的下单人数

2-统计用户不同月份的回购率和复购率

3-统计不同性别的消费频次是否有差异

4-统计不同性别的用户消费金额是否有差异

5-统计不同年龄段的用户消费金额是否有差异

6-rfm对用户价值划分

统计不同月份的下单人数

对应下单时间 有 年 月 日,我们统计年-月时间维度,count 计算下单数量

# 统计不同月份的下单人数
select concat(year(paidtime),'-',month(pai
### 如何将用户行为分析数据存储到MySQL中 #### 表的设计原则 在设计用于存储用户行为分析数据的MySQL表时,应遵循一些基本的原则以确保系统的高效性和可扩展性。这些原则包括但不限于明确需求、规范化命名方式、合理选择数据类型以及优化表结构等[^1]。 #### 创建用户行为分析表 假设我们希望记录用户的某些特定行为(如点击次数、页面停留时间),可以通过定义一张名为`user_behavior_analysis`的表格来实现: ```sql CREATE TABLE IF NOT EXISTS user_behavior_analysis ( id BIGINT AUTO_INCREMENT PRIMARY KEY, user_id VARCHAR(255) NOT NULL COMMENT '唯一标识符', event_type ENUM('click', 'view', 'purchase') DEFAULT NULL COMMENT '事件类别', page_url TEXT COMMENT '访问URL地址', duration INT DEFAULT 0 COMMENT '页面停留秒数', timestamp DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '发生的时间戳' ); ``` 上述代码片段展示了如何构建这样一个表单,其中包含了诸如`id`, `user_id`, 和 `timestamp`这样的核心字段,并设置了必要的约束条件和默认值[^2]。 #### 插入数据至MySQL数据库 当收集到了具体的用户行为信息之后,则需将其写回到之前建立好的数据库里去。这里给出一段Python脚本作为示范说明这一操作流程是如何完成的: ```python import pandas as pd from sqlalchemy import create_engine # 构造DataFrame对象代表待插入的数据集 data = { "user_id": ["u_1", "u_2"], "event_type": ['click', 'view'], "page_url": ['/home', '/product/123'], "duration": [10, 60], } behavior_df = pd.DataFrame(data) # 初始化引擎实例以便后续执行SQL语句 engine = create_engine('mysql+pymysql://root:password@localhost/db_name') try: behavior_df.to_sql( name='user_behavior_analysis', con=engine, if_exists='append', index=False ) except Exception as e: print(f"Error occurred while inserting data into DB:{str(e)}") finally: engine.dispose() ``` 此部分利用Pandas库中的to_sql方法简化了向现有关系型数据库传输大量结构化数据的过程。 #### 统计非空记录数量 对于已有的用户行为日志而言,有时我们需要知道某个具体列下有效条目总数是多少,在这种情况下就可以运用COUNT()聚合函数来进行计算[^4]: ```sql SELECT COUNT(event_type) AS total_events FROM user_behavior_analysis; ``` 以上命令会返回`event_type`字段内所有非NULL值得数目。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值