博主最近正在找工作,面了几家互联网大厂,发现SQL才是主流。虽然SQL很简单,但是面试官也会问SQL熟不熟练。

作为一名专业的数据分析师,SQL怎能不熟练呢。

还有人质疑我简历上写的某著名车企的工作经历,以为是家4s店。真是好笑,博主可是正经世界顶级外企出来的,当初也是打败了很多对手才得到的工作机会。

不过这也让博主觉得有必要好好回顾过去几年的工作。

博主找出压箱底的硬盘,里面还存着当时的工作数据。几十个文件夹,每个文件夹里又有几十个文件,每个文件都有几万行数据。一个理性的数据分析师也有感性的时候,博主刚参加工作的时候就要负责全国一千多家经销商的数据,繁琐的流程,即使现在来看也是很不容易的,那个时候如果技术水平再好点,也许就不会那么难……也正是这段经历,让博主心底里发愿要成为一名数据分析专家,通过技术手段提高数据处理的效率。那是6年前,数据分析也还没像现在这么火,博主也算是先驱吧……

好了,来看看企业真实的数据是什么样吧。

企业真实数据SQL分析_SQL企业级真实案例

博主随便翻出一个文件,里面有4万多行数据。

好了,让我们首先把数据导入mysql.

mysqlworkbench有按钮可以自动上传csv的数据,但是4万多行,估计要运行几个小时吧。没关系,mysql有上传数据的方法,用load data local infile,上传百万级数据无压力。来看看代码:

LOAD DATA LOCAL INFILE '/users/fangluping/desktop/UNBILLEDClaims20160219100757.csv'
into table benz
fields terminated by ','
ignore 1 lines;

对了,上传数据之前要在mysql里面新建一个表,表头和csv文件一致。

上传成功!

企业真实数据SQL分析_SQL企业级真实案例_02

好了,数据已经在mysql里了,可以对它们进行分析。分为哪几个维度呢?

#每家经销商的二次付款金额
select dealer_name, count(fin),sum(second_payment_amount) from benz
group by dealer_name
order by sum(second_payment_amount) desc;

企业真实数据SQL分析_SQL企业级真实案例_03

可以看到,南京之星的赔付金额是最高的,索赔车辆也最多。

#每个区域有几家经销商,有几个区域经理
select region, count(distinct district_manager), count(distinct dealer_name) from benz
group by region
order by count(distinct dealer_name) desc;

企业真实数据SQL分析_SQL企业级真实案例_04

这次赔付的每个区域的区域经理人数和经销商数量也是一目了然。

#不同延保类型的损害分类和赔付金额
select packagetype, count(distinct damage_code), sum(second_payment_amount) from benz
group by packagetype
order by sum(second_payment_amount) desc;

企业真实数据SQL分析_SQL企业级真实案例_05

三种蓝保的索赔金额也是有差异的,轻蓝11的金额最高,总共八百多万,原因是轻蓝的购买车辆最多,基数最大。

#每辆车的付款间隔时期及金额
select fin, packagetype, damage_code,datediff(first_credit_date,repair_date),second_payment_amount from benz
order by datediff(first_credit_date,repair_date) desc;

企业真实数据SQL分析_SQL企业级真实案例_06

从保修到付款的间隔时间最长的竟然近5个月,那平均周期是多长时间呢?

select packagetype,avg(datediff(first_credit_date,repair_date)) from benz
group by packagetype;

企业真实数据SQL分析_SQL企业级真实案例_07

mysql一秒计算出无压力,平均只要两个星期左右。

#经销商集团分析
select dealer_group,count(distinct district_manager),count(distinct dealer_name) from benz
group by dealer_group
order by count(distinct dealer_name) desc;

企业真实数据SQL分析_SQL企业级真实案例_08

总共两个经销商集团,这里面水可深了,还是不说了。每个集团二十几位区域经理,一两百家经销商。

好了,sql是不是简单又好用?

sql作为数据查询语言,最大的作用就是这些了。