MySQL业务分析实例
本文将依据实际消费场景下的order_info表及user_info表,进行具体业务分析。order_info表与user_info表结构如下图:
order_info表:
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/80b3c6787d4579efdb236852d06c49d6.png)
user_info表:
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/f9f530de894342fdd5726ff207979962.png)
具体分析事项包括:
* 统计不同月份的下单人数
* 统计各月份的回购率和复购率
* 回购率:上一月份购买后,接下来月份依旧购买的客户占比
* 复购率:同一月份购买次数在1次以上的客户占比
* 统计男女用户的消费频次是否有差异
* 统计多次消费的用户,第一次和最后一次消费间隔是多少
* 统计不同年龄段,用户的消费金额是否有差异
* 统计消费的二八法则,消费的top 20%用户,贡献了多少额度
* 统计不同月份的下单人数 (未支付情况下paidTime显示为0000-00-00)
* date_format依据年份-月份划分
SELECT
DATE_FORMAT(paidTime,'%Y-%m') AS m,
COUNT(distinct userId) AS ct
FROM data.orderinfo
WHERE isPaid = '已支付'
GROUP BY m;
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/3f4f1db4ffb2deb88e9dfbe811758bb4.png)
* 统计不同月份的下单人数 (未支付情况下paidTime显示为0000-00-00)
* month(paidTime)只依据月份划分
SELECT
MONTH(paidTime) AS m,
COUNT(DISTINCT userId) AS ct
FROM data.orderinfo
WHERE isPaid = '已支付'
GROUP BY m;
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/bb1354ba150154f5c1ac7dc8f9ac38a4.png)
* 复购率:同一月份购买次数在1次以上的客户占比
SELECT
m,
COUNT(IF(ct>=2,1,NULL))/COUNT(userId) AS ratio