MySQL一些操作汇总

MySQL操作

导言

上一期,用python把数据框一股脑写入MySQL,形成下面的表metro_sh_20160901,一共15122570条刷卡数据
在这里插入图片描述
现在的任务是要把交通方式为地铁的筛出来并形成新表metro20160901,首先把复制形成新的yikatong表

create table yikatong select 卡号,日期,date_format(时间,'%H:%i:%s') as 时间, 站点,交通方式,费用,是否有优惠 from metro_sh_20160901;

接着从yikatong表取出地铁数据,并形成新表metro20160901,共9778560条刷卡数据

create table metro20160901 select * from metro_sh.yikatong where 交通方式="地铁"; #把地铁的挑出来建新表

下面的把玩都是基于这张表的,比如统计各个站点的刷卡人次

select 站点,count(站点) from metro20160901 group by 站点; #按站点统计刷卡数据

在这里插入图片描述
统计各个时间段的刷卡人次,一个67117条数据,可以推测代码中’%H:%i:00’是按分钟

select date_format(时间,'%H:%i:00') as 时间, count(*) as 刷卡频率 from metro20160901 group by 时间 order by 时间; #时段刷卡频率 

在这里插入图片描述
根据刷卡人次时段表可以大致确定早高峰和晚高峰时段
在这里插入图片描述
我们从图中可以看到工作日有两个非常明显的刷卡高峰期,一个是早上上班的早高峰,出现在07:50-08:50,早高峰刷卡频数占全天的15.8%;一个是晚上下班的晚高峰,出现在17:30 -18:50,晚高峰刷卡频数占全天的15.7%,早高峰和晚高峰的刷卡频率一共占了全天的31.5%,是名副其实的高峰,而9:00-17:00是平峰时段,刷卡频数远低于早晚高峰期的刷卡频数。接下来就是要按时间跨度把早高峰和晚高峰筛出来并新建表

create table zaogaofeng select * from metro20160901 where 时间 between '07:50:00' and '08:50:00'; #早高峰刷卡人次
create table wangaofeng select * from metro20160901 where 时间 between "17:30:00" and "18:50:00"; #晚高峰刷卡人次

在这里插入图片描述
从数据看到早高峰有1524168条刷卡记录,晚高峰有1520615条刷卡记录,相差3000多条,大体均衡,也验证了这个早高峰和晚高峰时段确定的比较合理。

发布了45 篇原创文章 · 获赞 12 · 访问量 8649

猜你喜欢

转载自blog.csdn.net/zengbowengood/article/details/103471506