【SQL实战项目】电商平台数据分析项目

一.分析背景和目的

背景介绍

电商平台数据分析是最为典型的一个数据分析赛道,且电商数据分析有着比较成熟的数据分析模型,比如:人货场模型。此文中我将通过分析国内最大的电商平台——淘宝的用户行为,来巩固数据分析技能以及思维。通过分析用户行为,以此来实现精准营销,总结现有问题,获得业务增长。

数据源

数据源:阿里云天池数据集

数据说明

该数据集包含了2017年11月25日至2017年12月3日之间,有行为的约一百万随机用户的所有行为(行为包括点击、购买、加购、喜欢)。

二.分析框架和思路

数据分析的关键是指标体系的建立,从什么角度着手去达成数据分析的目的,在此次数据分析中,是对淘宝用户行为进行一个分析,而在电商用户行为分析中最常用的是“人货场”模型,人:即用户角度;货:即商品角度;场:即卖场,电商平台指标体系角度。
【SQL实战项目】电商平台数据分析项目_第1张图片

2.1场:电商指标体系角度

电商指标体系维度可以参见一些常见的指标:流量(包括总体流量,每日流量,每时流量),流量漏斗转换,复购率,跳失率。然后下面对每一个概念进行解释:
知识点1:衡量流量的指标为UV,PV,关于他们的解释参考这个链接。如何清除的理解UV和PV的定义
知识点2:流量漏斗转化模型的介绍
知识点3:跳出率
知识点4:重复购买率

2.2人:用户角度

从用户角度,可以采用用户转化漏斗模型和RFM用户分层模型,了解用户转化率,以及高价值用户。

2.3货:商品角度

知识点1:SKU的解释
商品角度可以从SKU下单量,SKU浏览量进行商品流量分析,结合浏览量和下单量对商品进行流量四象限分析。

三.分析主体

数据分析流程包括:
提出问题–理解数据-数据处理和清洗–构建模型-数据可视化

3.1提出问题

  • 用户在哪个环节流失以及流失的原因
  • 如何提升用户转化率
  • 哪些用户是高价值用户
  • 基于用户分层如何进行精准运营
  • 哪些商品是畅销商品
  • 商品流量随着时间段的变化

3.2理解数据

  • 用户ID:整数类型,序列化后的用户ID;
  • 商品ID:整数类型,序列化后的商品ID;
  • 商品类目ID:整数类型,序列化后的商品所属类目ID
  • 行为类型:字符串,包括(“pv”:相当于点击,“buy”:商品购买,“cart”:将商品加入购物车,“fav”:收藏商品)
  • 时间戳:行为发生的时间戳

3.3数据处理和清洗

3.3.1数据导入

这里分析的数据量为10w+,如果用excel进行分析的话,超出excel的承载,无法进行有效分析,因此这里使用了数据库管理软件Navicat进行分析处理。

(1)新建数据库【SQL实战项目】电商平台数据分析项目_第2张图片
(2)导入数据源
【SQL实战项目】电商平台数据分析项目_第3张图片

3.3.2去除重复值

去除重复值这里,可以将user_id,item_id,timestamp三者进行联合,形成联合主键,对数据集进行分组。如果数据集中没有重复值,则理论上用三者进行联合分组之后,
count(user_id)应该是不大于1的;如果数据集中有重复值,则理论上用三者进行联合分组之后,count(user_id)应该是大于1的。因此在这里判断count(user_id)是否大于1可以用having函数。

SELECT use_id FROM userbavior
GROUP BY user_id,item_id,timestamp
HAVING COUNT(user_id)>1

SQL查询结果如下:

【SQL实战项目】电商平台数据分析项目_第4张图片

结果显示没有重复值。

3.3.3查看缺失值

在查看缺失值板块,可以统计每一个字段下有多少行,如果行数是相等的说明没有缺失值。(对应于python数据分析中,可以用pandas库中的info()函数,来判断是否存在缺失值)。

SELECT COUNT(user_id),COUNT(item_id),COUNT(category_id),COUNT(behavior_type),COUNT(timestamp)
FROM userbehavior;

【SQL实战项目】电商平台数据分析项目_第5张图片

从查询结果来看,不存在缺失值,数据质量高。

3.3.4时间格式转换

数据库中时间以int类型进行储存,对于分析师来说非常的棘手,如何将整数类型的时间转换为肉眼能读懂的时间格式呢?可以采用如下函数。
采用函数:FROM_UNIXTIME
作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示。
这里用到的知识点:MYSQL格式时间戳函数:FROM_UNIXTIME

#新增date,hour时间列
ALTER TABLE userbehavior
ADD date VARCHAR(20),
ADD hour VARCHAR(20);
#时间格式转换
#将hour列的时间转换为-年-月-日
UPDATE userbehavior SET date = FROM_UNIXTIME(timestamp,'%Y-%m-%d');
#将hour列的时间转换为-时
UPDATE userbehavior SET hour = FROM_UNIXTIME(timestamp,'%H');timestamp列的时间转换为------UPDATE userbehavior SET timestamp = FROM_UNIXTIME(timestamp,'%Y-%m-%d %H:%i:%S');

运行结果如下:

【SQL实战项目】电商平台数据分析项目_第6张图片

3.3.5剔除异常值

#剔除异常值
#排除日期不在2017-11-25到2017-12-3这9天的数据
DELETE FROM userbehavior
WHERE date <'2017-11-25' or date >'2017-12-03'

检查下是否将异常值剔除干净

SELECT MAX(date),MIN(date) FROM userbehavior;

运行结果如下:
【SQL实战项目】电商平台数据分析项目_第7张图片

3.4构建模型

3.4.1电商数据指标分析

3.4.1.1 总体流量分析

总体流量可以从以下几个指标分析:
【SQL实战项目】电商平台数据分析项目_第8张图片
SQL查询语句如下:

SELECT
COUNT(DISTINCT user_id) AS UV,
SUM(CASE behavior_type WHEN 'pv' THEN 1 ELSE 0 END) AS PV,
SUM(CASE behavior_type WHEN 'fav' THEN 1 ELSE 0 END) AS 总收藏数量,
SUM(CASE behavior_type WHEN 'cart' THEN 1 ELSE 0 END) AS 总加购数量,
SUM(CASE behavior_type WHEN 'buy' THEN 1 ELSE 0 END) AS 总下单数量,
ROUND(SUM(CASE behavior_type WHEN 'pv' THEN 1 ELSE 0 END)/COUNT(DISTINCT user_id),0) AS 人均总点击量
FROM userbehavior;

查询结果如下:
【SQL实战项目】电商平台数据分析项目_第9张图片

  • 分析结论
  • 从总体流量角度没有办法得出一般结论,缺少参照,因此下文将分析每日流量和每时流量。
3.4.1.2 每日流量分析

【SQL实战项目】电商平台数据分析项目_第10张图片

SQL查询语句如下:

#按照日期进行分类,创建视图

CREATE VIEW  daily_flow AS 
SELECT date,
COUNT(DISTINCT user_id) AS 每日UV,
SUM(CASE behavior_type WHEN 'pv' THEN 1 ELSE 0 END) AS 每日PV,
SUM(CASE behavior_type WHEN 'fav' THEN 1 ELSE 0 END) AS 每日收藏数量,
SUM(CASE behavior_type WHEN 'cart' THEN 1 ELSE 0 END) AS 每日加购数量,
SUM(CASE behavior_type WHEN 'buy' THEN 1 ELSE 0 END) AS 每日下单数量,
ROUND(SUM(CASE behavior_type WHEN 'pv' THEN 1 ELSE 0 END)/COUNT(DISTINCT user_id),0) AS 每日人均点击量
FROM userbehavior
GROUP BY date
ORDER BY date;

SQL查询结果如下:
【SQL实战项目】电商平台数据分析项目_第11张图片
创建视图之后可以方便导出数据,继而对每日流量进行可视化,用excel进行可视化:
【SQL实战项目】电商平台数据分析项目_第12张图片

  • 分析结论:
  • 理解2017-11-25到2017-12-03这段时间的流量变动,2017-11-25到2017-12-1这段期间保持着稳定的态势,在2017-12-02之后,流量呈现增长的趋势,推测可能是因为双12预热活动,预售等活动,造成流量上升。
  • 可以针对12-02左右阶段进行运营和商品推送优化
3.4.1.3 每时流量分析

分析一天中的每小时流量,可以随机选择特定的一天,这里选择分析2017-11-25一天中的每时流量。
SQL查询语句如下:

#创建2017-11-25的每时流量分析视图

CREATE VIEW time_flow AS 
SELECT hour,
COUNT(DISTINCT user_id) AS 每时UV,
SUM(CASE behavior_type WHEN 'pv' THEN 1 ELSE 0 END) AS 每时PV,
SUM(CASE behavior_type WHEN 'fav' THEN 1 ELSE 0 END) AS 每时收藏数量,
SUM(CASE behavior_type WHEN 'cart' THEN 1 ELSE 0 END) AS 每时加购数量,
SUM(CASE behavior_type WHEN 'buy' THEN 1 ELSE 0 END) AS 每时下单数量,
ROUND(SUM(CASE behavior_type WHEN 'pv' THEN 1 ELSE 0 END)/COUNT(DISTINCT user_id),0) AS 每时人均点击量
FROM userbehavior WHERE date='2017-11-25'
GROUP BY hour
ORDER BY hour;

查询结果如下:
【SQL实战项目】电商平台数据分析项目_第13张图片
用EXCEL对每时流量进行可视化:
【SQL实战项目】电商平台数据分析项目_第14张图片

- 分析结论

  1. 分析每时流量,各项指标呈现同一趋势的变化规律,以变化趋势最为明显的每小时用户浏览量来说,在每天凌晨3点左右UV达到最低点,出现最低点的原因主要在于用户进入了休息状态。凌晨5点之后,网站的用户浏览量逐渐回温,符合用户的作息习惯。在白天的时间趋势里,网站的每小时用户浏览量保持一个稳定的趋势,在12点左右和21时左右达到巅峰值。在21时之后,用户浏览量缓慢下降,但这段时间的用户浏览量相对于一天中的平均浏览量来说还是比较高的。
  2. 得出结论:一天中平台流量最高的时间段是20-23时,流量最低的是用户普遍作息时间:2时-6时。
  3. 可以针对流量比较高的阶段进行商品的推送运营。
3.3.1.4 流量漏斗转化

用户在平台的行为路径为

  • 点击--收藏或加购--下单
  • 收藏和加购是并发行为,因此在流量转化这里不进行拆解
    SQL查询语句如下:
-- 用户行为流量转化
SELECT 
SUM(CASE WHEN behavior_type = 'pv'   THEN 1 ELSE 0 END) AS 总点击数量,
SUM(CASE WHEN behavior_type = 'fav'  OR behavior_type = 'cart' THEN 1 ELSE 0 END ) AS 总收藏和加购数量,
SUM(CASE WHEN behavior_type = 'buy'  THEN 1 ELSE 0 END) AS 总下单数量,

#计算加购收藏转化率
CONCAT(ROUND(SUM(CASE WHEN behavior_type = 'fav'  OR behavior_type = 'cart' THEN 1 ELSE 0 END )/SUM(CASE WHEN behavior_type = 'pv' THEN 1 ELSE 0 END) * 100,2),'%') AS pv2cart_or_fav,

#计算下单转化率
CONCAT(ROUND(SUM(CASE WHEN behavior_type = 'buy' THEN 1 ELSE 0 END)/SUM(CASE WHEN behavior_type= 'pv' THEN 1 ELSE 0 END)*100,2),'%') AS pv2buy

FROM userbehavior; 

得到各环节流量转化率结果如下:
【SQL实战项目】电商平台数据分析项目_第15张图片
用excel进行可视化后得到漏斗模型:
【SQL实战项目】电商平台数据分析项目_第16张图片

- 分析结论
根据流量漏斗转换模型可以得到:下单转化率为2.34%,加购/收藏转化率为9.13%,而根据2012年艾瑞咨询数据显示,在整个互联网行业范围内,平均转化率只有2.13%,淘宝平台流量转化率高于同行业平均水平,说明淘宝在流量转化这方面做的比较突出。

3.3.1.5复购率分析
  • 复购率计算公式
    复购率=重复购买客户数量(消费两次及以上)/客户样本数量

SQL查询语句如下:
(1)先创建视图

CREATE VIEW user_buy_data AS

SELECT user_id,COUNT(behavior_type) AS 'buy_count'
FROM userbehavior
WHERE behavior_type ='buy'
GROUP BY user_id;

【SQL实战项目】电商平台数据分析项目_第17张图片
(2)查询复购总人数,购买总人数,复购率

SELECT SUM(case WHEN buy_count>1 THEN 1 ELSE 0 END) AS '复购总人数',
COUNT(user_id) AS '购买总人数',
CONCAT(ROUND(SUM(case WHEN buy_count>1 THEN 1 ELSE 0 END)/COUNT(user_id)*100,2),'%')AS '复购率'
FROM user_buy_data;

运行结果如下:
【SQL实战项目】电商平台数据分析项目_第18张图片

  • 计算得到复购率高达65.8%,由此说明淘宝店铺忠诚度高,顾客愿意回购。
  • 应将经营重点转化为培养用户的忠诚度上,鼓励用户更高频次的消费。
3.3.1.6 跳失率分析
  • 跳失率定义:仅仅访问了单个页面的用户占全部访问用户的百分比
  • 跳出率可以反映用户对网站内容的认可程度,评判用户对网站的粘性,是衡量网站/APP优质内容的重要标准。
  • 用户跳失率计算公式为:
    只访问一次页面数/总用户数

SQL查询语句为:

#跳失率计算
#代码逻辑:用GROUP BY函数对用户进行分组,统计其behavior_type,如果behavior_type等于1的话统计人数
SELECT COUNT(*) AS '跳失人数'
FROM
(SELECT user_id FROM userbehavior GROUP BY user_id
HAVING COUNT(behavior_type)=1) AS t;

查询结果如下:
【SQL实战项目】电商平台数据分析项目_第19张图片

  • 分析结论:统计结果显示,9天内跳失用户数为0,用户跳失率为0。说明平台对用户有足够的吸引力,让用户可以在平台驻留。

3.4.2 用户角度分析

  • 为了便于之后的漏斗分析和RFM分析,可以先对每个用户的行为,包括:"点击",“收藏”,“加购”,“购买”,进行统计,并创建视图。之后的数据分析过程可以直接调用视图。
    SQL查询代码如下:
CREATE VIEW user_behavior_data AS

SELECT user_id,
COUNT(behavior_type) AS 用户行为总数统计,
sum(case WHEN behavior_type = 'pv' THEN 1 ELSE 0 END) AS 点击总数,
sum(case WHEN behavior_type = 'fav' THEN 1 ELSE 0 END) AS 收藏总数,
sum(case WHEN behavior_type = 'cart' THEN 1 ELSE 0 END) AS 加购总数,
sum(case WHEN behavior_type = 'buy' THEN 1 ELSE 0 END) AS 购买总数
FROM userbehavior
GROUP BY user_id
ORDER BY 用户行为总数统计 DESC;

运行结果如下:
【SQL实战项目】电商平台数据分析项目_第20张图片

3.4.2.1 用户行为漏斗转化分析
  • 漏斗分析模型阐述:前文有简单的利用漏斗模型分析流量转化,这里利用漏斗模型分析用户行为转化,二者存在关联,但用户行为转化要更细分。漏斗模型已经广泛应用于各行业的数据分析工作当中,用于评估总体转化率,各个环节的转化率,以科学评估促销专题活动效果等,通过与其他数据模型结合进行深度用户行为分析,从而从业务角度找到用户流失原因,提升用户量,留存率。
  • 用户的行为转化路径可以分为以下几种:

【SQL实战项目】电商平台数据分析项目_第21张图片
(1)点击-直接购买

SELECT count(user_id) AS 购买人数
FROM user_behavior_data
WHERE 购买总数>0 AND 加购总数=0 AND 收藏总数=0;

select count(user_id) AS 点击用户数
FROM user_behavior_data
WHERE 点击总数>0;

【SQL实战项目】电商平台数据分析项目_第22张图片
【SQL实战项目】电商平台数据分析项目_第23张图片
用EXCEL进行可视化可以得到:
【SQL实战项目】电商平台数据分析项目_第24张图片

  • 根据可视化图表可以看出,在用户进行点击之后,转化率为7.45%

(2)点击-加购不收藏-购买
SQL查询语句如下:

select count(user_id) AS 点击用户数
FROM user_behavior_data
WHERE 点击总数>0;

SELECT count(user_id) AS 加购不收藏人数
FROM user_behavior_data
WHERE  加购总数>0 AND 收藏总数=0;

SELECT count(user_id) AS 购买人数
FROM user_behavior_data
WHERE  加购总数>0 AND 收藏总数=0 AND 购买总数>0;

运行结果如下:
【SQL实战项目】电商平台数据分析项目_第25张图片
【SQL实战项目】电商平台数据分析项目_第26张图片
【SQL实战项目】电商平台数据分析项目_第27张图片

用Excel进行可视化可以得到如下结果:
【SQL实战项目】电商平台数据分析项目_第28张图片

  • 根据可视化图表可以看出,在用户进行点击之后,有48.78%的用户转化为“加购不收藏”,而这些用户中,有69.25%的用户转化为了“直接购买”。
  • 分析比较得出结论:用户在点击之后选择直接加购,而没有进行收藏,转化为“购买”行为的比率要更高。

(3)点击-收藏不加购-购买
SQL查询语句如下:

select count(user_id) AS 点击用户数
FROM user_behavior_data
WHERE 点击总数>0;

SELECT count(user_id) AS 收藏不加购人数
FROM user_behavior_data
WHERE  加购总数=0 AND 收藏总数>0;

SELECT count(user_id) AS 购买人数
FROM user_behavior_data
WHERE  加购总数=0 AND 收藏总数>0 AND 购买总数>0;

运行结果如下:
【SQL实战项目】电商平台数据分析项目_第29张图片
【SQL实战项目】电商平台数据分析项目_第30张图片
【SQL实战项目】电商平台数据分析项目_第31张图片
用EXCEL进行可视化:
【SQL实战项目】电商平台数据分析项目_第32张图片

  • 分析可视化图表可以得出,用户进行点击之后,有12.04%的用户转化为“收藏不加购”,这其中的用户有60.17%转化为了“购买”。
  • 比较分析可以得出结论,点击到收藏这一行为路径转化率较低,从收藏到购买这一转化路径,与从加入购物车到购买这一转化路径,转化比率是相当的。

(4)点击-加购并收藏-购买
SQL查询语句如下

select count(user_id) AS 点击用户数
FROM user_behavior_data
WHERE 点击总数>0;

SELECT count(user_id) AS 加购并收藏人数
FROM user_behavior_data
WHERE  加购总数>0 AND 收藏总数>0;

SELECT count(user_id) AS 购买人数
FROM user_behavior_data
WHERE  加购总数>0 AND 收藏总数>0 AND 购买总数>0;

查询结果如下:
【SQL实战项目】电商平台数据分析项目_第33张图片
【SQL实战项目】电商平台数据分析项目_第34张图片
【SQL实战项目】电商平台数据分析项目_第35张图片
Excel可视化结果如下:
【SQL实战项目】电商平台数据分析项目_第36张图片

  • 分析可视化图表可以得出,用户进行点击之后,有25%的用户收藏并加购,这其中有80% de用户选择了购买。

  • 四种方式对比说明:
    这四种方式比较说明,加购物车购买是用户最喜欢的一种方式,其次喜欢的就是加购且收藏,用户对商品进行加购且收藏之后,转化为购买的比率要更高。推断原因可能是因为加购物车,用户可以享受满减等优惠或者折扣。所以,我们可以引导用户将商品加购物车,提高中间转化率。

  • 流失评估:对比用户的中间转化率,都低于50%,在从用户浏览到购买这一环节用户流失率高,因此要对用户流失原因进行分析。

3.4.2.2 RFM用户价值分层分析

RFM模型是衡量客户价值的重要工具,该模型是通过客户最近交易行为(recency),交易频率(Frequency),以及交易金额(Monetary)三项指标来衡量该客户的价值状况。一般来说,会根据三项指标进行组合,从而对用户进行分类,或者说对用户价值进行分层。
最近一次消费(recency):是指最近距离上一次消费之间的时间长短,反映了客户对品牌价值的信任度,反映用户留存。
消费频率(frequency):是指某个特定时间内消费次数,反映了客户的忠诚度,忠诚度越高的客户数量越多,公司竞争优势越大,市场份额越大。
消费金额:指的是一定时间内消费某产品金额,反映客户价值,价值越高,给公司创造的收益越大。
【SQL实战项目】电商平台数据分析项目_第37张图片
因为数据源中没有涉及消费金额,因此只从R和F来对客户价值进行评分,不考虑M维度。
(1)分析最近一次消费R
查询最大值,最小值与平均值,查询代码如下:

#分析购买间隔
#找出最大购买间隔和最小购买间隔,平均购买间隔
#使用datediff函数
#最近一次消费可以统计最近一次消费,即行为为“buy”的用户,最大日期或者说最后一次购买日期,距今的时间间隔

SELECT MAX(购买间隔),MIN(购买间隔),AVG(购买间隔)
FROM
(
SELECT user_id,datediff('2017-12-04',MAX(date)) AS 购买间隔
FROM userbehavior
WHERE behavior_type='buy'
GROUP BY user_id) AS t

查询结果如下:
【SQL实战项目】电商平台数据分析项目_第38张图片

  • 分析说明:根据查询结果可以看出,用户最后一次购买距今的时间间隔,最大间隔是9天,最小时间间隔是1天,平均时间间隔是3.45天。

(2)分析购买频率F
查询分析购买频率最大值和最小值,平均值

SELECT MAX(购买次数),MIN(购买次数),AVG(购买次数)
FROM
(
SELECT user_id,COUNT(behavior_type) as 购买次数
FROM userbehavior
WHERE behavior_type='buy'
GROUP BY user_id
) As t

查询结果如下:
【SQL实战项目】电商平台数据分析项目_第39张图片

  • 分析结果说明,在2017-11-25到2017-12-03这段时间内,消费频率最高的用户消费频率为43,消费频率最小的用户消费频率为1,平均消费频率为3.1311。

(3)整合R和F,创建视图,进行可视化
在整合R和F之前,需要先对每个用户的购买次数和购买间隔进行统计。并创建视图,方便Tableau连接MySQL进行可视化。
SQL查询语句如下:

#整合R和F,创建视图
CREATE VIEW user_RFM AS 
SELECT user_id,COUNT(behavior_type) AS 购买次数,
datediff('2017-12-04',MAX(date)) AS 购买间隔 
FROM userbehavior
WHERE behavior_type='buy'
GROUP BY user_id
ORDER BY 购买次数 DESC

SQL查询结果如下:
【SQL实战项目】电商平台数据分析项目_第40张图片
用MySQL连接Tabelau进行可视化可以得到结果图
关于Tabelau如何连接数据库,可以参考这个链接
如何将Tabelau连接数据库
关于如何用Tabelau画思想线图,可以参考这个视频:
如何用Tabelau画四象限图
这里采用购买次数和购买间隔的均值对象限进行划分,即:R=4,F=4
所得可视化图表如下:
【SQL实战项目】电商平台数据分析项目_第41张图片
散点图可以划分为四个象限,分别用四种不同颜色表示,四个象限分别为:

R值 F值 用户分类
R<4 F<4 重要挽留用户
R<4 F>=4 重要保持用户
R>=4 F<4 重要发展用户
R>4 F>4 重要价值用户

根据不同价值的用户,可以制定不同的营销策略:

  • 对于重要价值用户,他们是最优质的用户,需要重点关注并保持, 应该提高满意度,增加留存;
  • 对于重要保持用户,他们最近有购买,但购买频率不高,可以通过活动等提高其购买频率;
  • 对于重要发展用户,他们虽然最近没有购买,但以往购买频率高,可以做触达,以防止流失;
  • 对于一般价值用户,他们最近没有购买,以往购买频率也不高,特别容易流失,所以应该赠送优惠券或推送活动信息,唤醒购买意愿。

3.4.3 商品流量分析

3.4.3.1商品下单量分析

(1)按照商品种类分组
SQL查询语句如下:

#按照商品种类分组,查看每种商品的下单量
SELECT item_id,COUNT(behavior_type) as 下单次数
FROM userbehavior
WHERE behavior_type='buy'
GROUP BY item_id
ORDER BY 下单次数 DESC

查询结果如下:
【SQL实战项目】电商平台数据分析项目_第42张图片

  • 分析结果显示:总共有1984条商品数据,说明有1984如上表所示,我们发现,在被下单购买的1984件商品中,单个商品被购买的次数最多不超过4次,也就是说,其实没有出现卖得特别火爆的商品。
    (2)按照下单次数分组
    按照下单次数分组,统计每种下单次数对应几种商品,以方便进行帕累托分析,SQL查询代码如下:
SELECT 下单次数,count(item_id) AS 商品种类数
FROM (SELECT item_id,COUNT(behavior_type) as 下单次数
FROM userbehavior
WHERE behavior_type='buy'
GROUP BY item_id
ORDER BY 下单次数 DESC
)as t
GROUP BY 下单次数
ORDER BY 下单次数 DESC;

查询结果如下:
【SQL实战项目】电商平台数据分析项目_第43张图片

  • 根据查询结果可以得出,下单量最大为4,其对应的商品种类为4,占比0.2%;下单量最小为1,其对应的商品种类为1881,占比达到94.8%。下单量为3的商品占比0.3%;下单量为2的商品占比4.7%。

(3)利用Tabelau进行可视化
【SQL实战项目】电商平台数据分析项目_第44张图片

对商品下单量进行统计分析,结果并不符合二八定律,80%的下单量并不是由20%的商品带动的,这也说明了,以淘宝为代表的电商平台,其商品售卖主要依靠的是商品的长尾效应,并非爆款商品的带动。

3.4.3.2商品浏览量分析

分析商品浏览量和分析商品下单量采取一样的逻辑思维,SQL查询代码也呈现同样的设计逻辑,SQL查询代码如下:
(1)按照商品种类分组
按照商品种类分组,查看每种商品的浏览量

SELECT item_id,COUNT(behavior_type) as 浏览次数
FROM userbehavior
WHERE behavior_type='pv'
GROUP BY item_id
ORDER BY 浏览次数 DESC

查询结果如下:
【SQL实战项目】电商平台数据分析项目_第45张图片

(2)按照浏览次数分组
统计浏览次数和商品种类的对应关系,SQL查询代码如下:


SELECT 浏览次数,count(item_id) AS 商品种类数
FROM (SELECT item_id,COUNT(behavior_type) as 浏览次数
FROM userbehavior
WHERE behavior_type='pv'
GROUP BY item_id
ORDER BY 浏览次数 DESC
)as t
GROUP BY 浏览次数
ORDER BY 浏览次数 DESC;

查询结果如下:
【SQL实战项目】电商平台数据分析项目_第46张图片

(3)对上述结果进行可视化
对上述结果进行可视化,可以得到如下的帕累托图:
【SQL实战项目】电商平台数据分析项目_第47张图片
根据帕累托图可以得出结论,80%的浏览量是由66%的商品带动的,不符合二八定律,符合长尾效应。

3.4.3.1商品流量四象限分析

对商品的下单量和浏览量进行四象限分析,可以更好的制定营销策略。
SQl查询代码如下:

SELECT item_id,
sum(case WHEN behavior_type='pv' THEN 1 ELSE 0 END) AS 浏览量,
sum(case WHEN behavior_type='buy' THEN 1 ELSE 0 END) AS 下单量
FROM userbehavior
GROUP BY item_id
ORDER BY 下单量 DESC;

查询结果如下:
【SQL实战项目】电商平台数据分析项目_第48张图片
用Tabelau连接MySQL数据库,将数据导入到Tabelau中进行可视化。
使用Tabelau对结果进行可视化,可视化结果图如下图所示:
【SQL实战项目】电商平台数据分析项目_第49张图片
用浏览量=12和下单量=3将图中的散点分为四个象限:
第Ⅰ象限:购买量高,浏览量低。产生这种现象可能有以下两种原因:从C端用户看,该象限内的商品可能属于某类用户的刚需产品,可以结合商品的ID和商品的种类进一步判断;从B端来看,该象限内的商品可能存在受众广这个原因,但是因为商家引流入口少,因此浏览量虽少,购买量仍高。

  • 改进措施:收集目前购买与浏览该象限内商品的用户信息,分析用户画像,并结合商品的特征归属,核实产品是否存在某类特征明显的消费群体。如果存在,则电商平台可以集中向该类特征消费用户进行定向推送、精准推送;如果不存在,则可以对该象限内商品的多做推广,提高曝光率,并增加引流入口,流量上来了,销量可能会有提升。

第Ⅱ象限:浏览次数高,购买量高。属于转化率比较高的商品,用户比较容易看到相关商品的广告,也比较愿意点购买该商品,即“对的信息传递给了对的人,对的人找到了他要的信息”。

  • 改进措施:由于该象限内的商品有对应的市场,电商平台应该重点进行推送,并且可以多做活动,吸引更多的潜在用户。

第Ⅲ象限:购买量低,浏览量低。原因主要从B端分析,一是在于广告和页面对用户吸引力不够,引流入口少,二是可能在于商品本身和广告不符

不精准人群。可以简单理解为很少人点广告,就算点了广告,也很少人购买。说明广告没有很好的展现到目标人群面前,或者广告创意吸引力不够。另外在网站层级也可能出现问题。

第Ⅳ象限:浏览量高,购买量差。失望的消费者。可以简单理解为点击广告的人很多,但都不产生购买。说明可能是广告创意夸大诱导网民点击;另外,购买量差的矛盾应该指向网站和产品(服务)本身,例如网站打开速度慢,着陆页建设差,自身产品毫无优势等。

分析说明:上图我们可以发现,大部分商品集中分布在第三象限。说明针对这部分商品,我们应该提高广告的创意吸引力 和 改进算法,精准广告投放人群。

四.数据报告

4.1数据分析结论

4.1.1 电商指标体系维度分析

1.每日流量:分析每日流量,2017-11-25到2017-12-1这段期间保持着稳定的态势,在2017-12-02之后,流量呈现增长的趋势,推测可能是因为双12预热活动,预售等活动,造成流量上升。可以针对12-02左右阶段进行运营和商品推送优化。
2.每时流量:分析每时流量,一天中平台流量最高的时间段是20-23时,流量最低的是用户普遍作息时间:2时-6时。可以针对流量比较高的阶段进行商品的推送运营。
3.流量转化:分析从点击到购买的转化,可以计算得到转化率为2.13%,淘宝平台流量转化率高于同行业平均水平,说明淘宝在流量转化这方面做的比较突出。
4.复购率和跳失率:复购率高达65.8%,9天内的跳失率为0,由此说明淘宝店铺忠诚度高,顾客愿意回购。

4.1.2 用户维度分析结论

1.从用户行为转化路径来看,比较用户行为转化路径一级转化率,得到用户一级转化率最高的方式是浏览—>加购但不收藏,其次一级转化率比较高的方式是浏览—>加购且收藏,加购且收藏之后,二级转化率要更高。因此可以提出策略。引导用户将商品加入购物车,提高一级转化率。
2.从用户分层模型来说,根据购买次数和购买间隔对用户进行分层,找出高价值用户。

4.1.3商品维度分析结论

1.对商品浏览量和下单量进行帕累托分析,分析可得80%的下单量并不是由20%的商品引起的,不符合二八定律,而是长尾效应,给出的营销策略是可以侧重于打造爆款商品。
2.对商品流量进行四象限划分,可以针对不同象限的商品制定相应的营销策略;且发现大部分的商品分布在第三象限,即:购买量高,浏览量差,可以针对这部分商品,提高广告的吸引力以及改进算法,精准投放。

4.2结合数据分析给出策略

【营销策略】

  • .周末相对于工作日而言,用户的空闲时间增多,这是一个突破口。在这个前提下,可以考虑在周末开展促销活动,挖掘部分用户,引导用户消费;在晚上7点以后开展营销活动,活动比较容易触达用户,可以提高网站流量。
  • 用RFM模型对客户群进行划分,对不同的客群采用差异化策略管理,达到精准营销。
  • 打造爆款商品,可以从推荐商品的排序,以及展示位的吸引度着手,突出产品优势,发挥二八效应。

【转化策略】
针对提高用户浏览-购买行为转化率,建议两步走:

  • 第一步,提高中间行为 收藏和加购 的流量,引导用户加购收藏。
  • 第二步,提高最终行为 购买 的流量,前面有了收藏加购率,商家就要增添宝贝的亮点,搞搞促销活动或者提升售前售后服务,满足不同用户的需求,直击用户的痛点,刺激他们的购买欲望,这样水到渠成,成交自然就上来了。

你可能感兴趣的:(数据分析,sql,数据挖掘)