背景:
基于某公司2017年6月份销售数据和会员信息,所采用的数据来源于某课程提供的数据集。
由于电商数据分析中涉及到的指标繁重复杂,数据集所提供的信息并不完整,本文依据已有数据信息对其中一部分指标进行分析。
本数据集包含原始数据集如下:
客户相关文件:
订单相关文件:
任务:
1、理解数据,并根据规则创建表
2、导入数据
3、数据清洗、字段处理
4、按照问题要求关联各表,查询结果
5、使用power pivot建立层次结构,并可视化
行动:
1、创建表(以userinfo为例)·
使用的是MySQL
f
create table userinfo (
userid VARCHAR(6) not null default'-',
username VARCHAR(20) not null default'-',
userpassword VARCHAR(100) not null default'-',
sex INT not null default'0',
usermoney INT not null default'0',
frozenmoney INT not null default'0',
addressid VARCHAR(20) not null default'-',
regtime VARCHAR(20) not null default'-',
lastlogin VARCHAR(20) not null default'-',
lasttime DATE not null
);
desc userinfo;
2、导入数据(以userinfo为例)
load data local infile'D:\\data\\UserInfo.csv'
into table userinfo
fields terminated by ','
ignore 1 lines;
select * from userinfo; -- 检查数据信息
select count(*) from userinfo; -- 检查总行数1000
desc userinfo; -- 检查数据结构
3、数据清洗、字段处理
(1)筛选重复值、异常值:userinfo中sex,usermoney,frozenmoney值均为0,故此案例中可删除该字段
select distinct sex ,usermoney,frozenmoney from userinfo;
sex | usermoney | frozenmoney |
---|---|---|
0 | 0 | 0 |
(2)使用from_unixtime,substring,date_format处理时间字段格式
-- 创建新的日期时间字段并将时间戳转换为日期格式
alter table userinfo add regtime_ datetime not null;
update userinfo set regtime_=from_unixtime(regtime);
-- 删除原字段
alter table userinfo drop column regtime;
(3)用elt、interval组合方法对数据分组
将orderinfo中的字段orderamount分组
alter table orderinfo add ordera_range varchar(20);
update orderinfo2 set ordera_range=elt(interval(
OrderAmount,0,200,400,600,800),'0~200','200~400','400~600','600~800','>800');
结果示例:
orderamount | ordera_range |
---|---|
56.4 | 0~200 |
258 | 200~400 |
452 | 400~600 |
也用此方法对下单时间进行分段处理
(4)用join根据相应关系进行连接,创建新查询
select OrderID,
UserID,
ri.regionname as province_name,
ri2.regionname as city_name,ri3.regionname as district_name ,
ri4.regionname as country_name ,
from orderinfo oi
left join regioninfo ri on oi.Province=ri.regionid
left join regioninfo ri2 on oi.city=ri2.regionid
left join regioninfo ri3 on oi.District=ri3.regionid
left join regioninfo ri4 on oi.country=ri4.regionid;
处理后的订单表表名为orderinfo2
(5)利用数据连接向导将数据库中的数据导入excel,并添加到模型,建立层次关系,进行可视化
建议