分析导览:
- 分析目的
![4461eea04a315234d7fd7d36e23ff486.png](https://img-blog.csdnimg.cn/img_convert/4461eea04a315234d7fd7d36e23ff486.png)
1-统计不同性别的消费频次、消费金额
2-统计不同年龄段用户的消费金额
3-统计不同月份的消费金额
4-统计多次消费的用户,第一次和最后一次消费时间的间隔
5-统计不同年龄段的用户消费金额
6-统计消费的二八法则,消费top20%的用户,贡献了多少额度
- 分析过程
(一)文件导入
文件导入具体方法见如何在mySQL中文件导入CSV文件,这里就不在赘述。
主要步骤分为建表、导入文件,为了避免遇到很多坑,可以间我前一篇文章,这里的数据量有10w条,用命令行导入很方便。
创建的两张表的字段:
user:userid, sex,birth
orderinfo: orderid,userid,ispaid,price,paidtime
(二)用户消费者行为分析
1、统计不同月份的下单人数
select CONCAT_WS('-',left(paidtime,4),mid(paidtime,6,1)) as month_,count(distinct userid) as paidorder from test.orderinfo
where ispaid='已支付'
group by left(paidtime,4),mid(paidtime,6,1);
![8176b58383dcfc0d238172d44fda40e7.png](https://img-blog.csdnimg.cn/img_convert/8176b58383dcfc0d238172d44fda40e7.png)
注:这里用到字符串拼接和选取字符串的函数,concat_ws,left,mid,还可以用substring函数。
从结果中看出,三四月份的下单人数最多,5月份竟然只有6个人。
2、统计男女的消费频次
思路是先将两个表联结,求出每个id的下单次数,再在该表基础上对男女进行分组,统计。这里有个需要注意的,我们可以统计下单的男女频次,也可以统计已支付和未支付的频次。
select a.userid,b.sex,count(1)as cs from test.orderinfo a,test.user b where a.userid=b.userid and ISPAID="已支付" and b.sex is not null
group by a.userid;
![a08a170b0eace54364df547416c0a2ff.png](https://img-blog.csdnimg.cn/img_convert/a08a170b0eace54364df547416c0a2ff.png)
select c.sex ,round(avg(c.cs),2) as 平均次数 from (select a.userid,b.sex,count(1)as cs from test.orderinfo a,test.user b where a.userid=b.userid and ISPAID="已支付" and b.sex is not