数据分析 SQL面试题 sql数据分析考什么证书_sql 分组统计


SQL是数据分析师的必备技能之一(另一项技能是Excel),但目前网络上关于SQL的教程为了充实内容,添加了大量的数据分析师不必需的内容,像数据库的表的操作,用户管理,锁的解释等等。专业的数据分析师,只需要利用公司已经建立的完备的数据仓库,从中获取所需要的数据,进行分析即可。

SQL,全程是Structure Query Language,是专门操作数据库的语言。操作数据库包含了库、表、用户、记录(数据)的增删改查,当然还有数据库的其他功能。对于数据分析师而言,绝大部分的工作都是集中在数据的查询上面。库、表的增删改主要由专门的数据开发工程师维护,用户的管理由数据安全部门负责。作者希望通过几篇简单的文章带领大家进入数据分析师的SQL,而不是大而全的去学习SQL。你会发现,SQL,其实真的很简单。

大纲只要涵盖了四个方面:单表查询范式、常用函数、子查询和表连接。

单表查询范式

单表查询是数据查询最基本最复杂的内容,但是学习起来也比较容易,其基本模式如下:

selectcol1,col2,……from table1where ……group by ……having ……order by ……

上面出现的语句:select、from、where、group by、having和order by就是单表查询中最常见的语句了,掌握这些语句就可以实现完整的单表查询。

where是筛选作用,对数据表的记录按照某种条件进行筛选;group by是分组的功能,分组以后再实现统计;having是对分组后统计的结果进行再次的筛选;order

by是排序作用,是选择哪些列以及按照升序或降序的方式排序数据。

常用函数

常用函数的话,分为四类:数字函数;字符串函数;日期函数;其他函数。SQL中的变量类型有很多种,对于数据分析师而言,只要把它们划分为数字型、字符型、日期型即可。分别对应了上面三种函数。其他函数主要是根据工作经验选择出的非常常用的两个函数。

数字函数:加减乘除幂,这些就不多说了。主要是想说一下数字函数中的聚合函数:sum、count、min、max,这些函数,刚才在语句中我们提到了group by函数,其是一个分组的功能,为什么需要分组,自然是要对分组后的数据进行统计,这时候就需要聚合函数了,上面四种函数是最为常用的四种聚合函数。

字符串函数:主要是对字符串进行操作。包括计算字符串长度的len函数,截取字符串的left、right、substr函数,替换字符串的replace函数,拼接字符串的concat函数。

日期函数:包括拆解日期变量的year、month和day函数,计算时间间隔的datediff函数。

其他函数:排序函数row_number() over(partation by…… order by……),这个函数严格意义上应该归为窗口函数,其作用是按照指定的方式给列一个排序的序号,这样就方便获取第几条数据。case when then else end函数,这个是分组函数,和group by的区别是,group by是对现有行进行分组,case when then else end函数是基于当前的某一列或多列的数据赋予当前行一个新的类别。比方说按照成绩分层给一个优良中差,这就需要case when then else end函数。

子查询

子查询可以理解为查询的嵌套,作为常用的是from子查询,其内在思想就是把查询出来的数据当成新的数据表进行再次查询。相当于是将之前多步的查询结果合并成为一步。

selectcol1from(selectcol1,col2from table1) as table2

数据分析师的查询,往往要求一次查询到位,不存在查询出中间表,然后建立新表再查询,那样会浪费大量的存储空间,所以会要求数据分析师一次查询出想要的数据。

表连接查询

工作中不可能只做单表查询,会用到多张表联合查询。多表连接,实际就是通过字段将多张数据表拼接起来。常用的表连接有left join、right join、inner join和full join,四者关系如下图

数据分析 SQL面试题 sql数据分析考什么证书_sql server 字符串拼接_02

掌握以上内容,就掌握了绝大多数的SQL技能,辅以相应的练习题,就可以非常熟练的掌握SQL。对于数据分析师的面试而言,仍然需要多去看相应的面试题目,从而能够顺利通过。