1.数据介绍
数据集《购买商品》,《婴儿信息》,ser_id:用户id、auction_id:购买行为编号、cat_id:商品种类ID、cat1:商品属于哪个类别、property:商品属性、buy_mount:购买数量、day:购买时间,婴儿信息字段:user_id:用户id、birthday:出生日期、gender:性别(0 男性;1 女性)
2.mysql处理数据
1.清洗数据
select paim=(int) from `购买商品` a
where user_id='' or null
更改日期类型
update `婴儿信息` set birthday=date_format(birthday,'%Y-%m-%d')
update `购买商品` set day=date_format(day,'%Y-%m-%d')
delete from `婴儿信息`
where user_id in (
select a.user_id from (select a.user_id from `婴儿信息` as a
join `购买商品` b on a.user_id=b.user_id
where (b.day-a.birthday)<-1 or (b.day-a.birthday)>12) a)
delete from `婴儿信息`
where user_id in (
select a.user_id from (select a.user_id from `婴儿信息` as a
join `购买商品` b on a.user_id=b.user_id
where buy_mount > 50 ) a)
delete from `婴儿信息`
where gender=2
2. 各类别商品排名
select (@i:=@i+1)as 排名,a.* from
(
select cat1 商品类别,sum(buy_mount) 购买数量 from `婴儿信息`
join `购买商品` on `婴儿信息`.user_id=`购买商品`.user_id
group by cat1
) a,(select @i:=0) b
ORDER BY a.购买数量 desc
3.销量top3 在每个月销量情况
select y.月份,
sum(if(y.商品类别='50008168',y.购买数量,0))as '50008168',
sum(if(y.商品类别='50014815',y.购买数量,0))as '50014815',
sum(if(y.商品类别='28',y.购买数量,0))as '28'
from (
select date_format(day,'%Y-%m')as '月份',cat1 '商品类别',buy_mount '购买数量' from `婴儿信息` a
join `购买商品`b on a.user_id=b.user_id
order by 月份
) as y
group by y.月份
4.top 3的每个年龄段购买数量
select y.婴儿年龄,
sum(if(y.商品类别='50008168',y.购买数量,0))as '50008168',
sum(if(y.商品类别='50014815',y.购买数量,0))as '50014815',
sum(if(y.商品类别='28',y.购买数量,0))as '28'
from (
select (b.day-a.birthday) 婴儿年龄 , cat1 '商品类别',buy_mount '购买数量' from `婴儿信息` as a
join `购买商品` b on a.user_id=b.user_id
order by 婴儿年龄
) as y
group by y.婴儿年龄
5.每月购买数量
select date_format(day,'%Y-%m')as '月份',sum(buy_mount) '购买数量' from `婴儿信息` a
join `购买商品`b on a.user_id=b.user_id
group by 月份
3.数据可视化
根据排名,商品有6个类别,销量top3 分别是50008168、50014815、28,占比为33.06%,23.3%,21.56%。
根据购买商品数量可以看出,在2013年9月份开始商品销量逐渐升高,在2014年的上半年销售数量不太稳定,而在2014年的下半年销售数量较平稳,在2013年的9月、2013年的11月、2014年2月、2014年5月的同比增长比较明显 ,2014年5月到2014年8月销售数量每月都在递减,9月开始回温。
500018168和50014815的增长趋势和下降趋势相似,可能存在相关性。
在婴儿年龄在0-1岁时购买最多的商品是50014815,在1-2岁时购买最多的商品是50008168和28,在1岁后购买50008168的数量多于50014815和28。