很多人入门学习数据分析,往往第一时间就是去学习SQL,那么问题就来了:要成为数据分析师需要掌握SQL到什么程度呢?
从我自己的认知里,数据分析中只有两部分的工作是 SQL 无法完成的:数据可视化,即数据的图形化展示;数据挖掘,即数据的深度学习、机器学习等算法。
那么在实际工作中的数据分析里,哪些具体的工作会用到 SQL 呢?
有些小伙伴不知道本文内容和更多相关学习资料的请点赞收藏+评论转发+关注我,后面会有很多干货。我有一些面试题、架构、设计类资料可以说是程序员面试必备!所有资料都整理到网盘了,需要的话欢迎下载!私信我回复【000】即可免费获取
(1)为固定报表提供数据。在大部分的固定报表中,SQL 一定是为报表提供数据的最好方式。
(2)数据跟踪、报表调试、数据验证。当用户反映报表数据有问题时,就需要从报表的 SQL 出发,一步步调试,跟踪发现数据问题出现在哪个表、哪个过滤条件、哪个权限。还有,在报表上线前的测试阶段,用自己写好 SQL 返回的数据和报表的 SQL 返回的数据进行对比验证。
(3)一些公司不用专业图形化的 ETL 开发工具,而偏向写存储过程 SQL 来执行数据的抽取、转换和加载,因此会写存储过程也是非常重要的。
其实不同数据分析岗位对于SQL掌握程度的要求和标准是不同的。
比较常见的业务分析师,对SQL的掌握有一定要求,不过也不必要十分精通,只要能从数据仓库里取数、学会普通的增删减改就行了,取数不是业务分析师的主要工作,而且很多人用现成的BI工具,或者直接Python大法,虽然也需要SQL从数据库中取数,但是不用考虑复杂逻辑;
如果是做数据仓库的分析师,或者说更类似于系统分析师,那就必须要精通SQL了,作为吃饭的饭碗,当然不能差了,起码来说T-SQL、约束、触发器、复杂综合查询、客户端、联机分析处理等都要掌握,更好地提高检索速度对于业务来说比较重要;
当然还有一些数据分析岗位,对于SQL不是必须的,但是学会了是加分项。
一般数据分析人员,其中会用SQL进行增删改查是必须的,然后业务不同你可能需要掌握的内容有:
1. 除了查,其他建议开启事务,绝对是个好习惯
2. 会建立基础视图用来清理数据,在存储过程中使用视图,整个耦合性会更好一点
3. 会建立临时表来进行多表之间关联,做一些复杂的查询
4. row_number ()函数使用,熟练使用此函数,对于新客/老客/频次等分析很有帮助
5. 当数据量大时,少用子查询,多用exists 操作.
6. 关联时多想想会不会出现笛卡尔集,造成数据异常
7. 时间格式转换要熟练
8. lag 函数
9. concat 函数
10. stuff 函数 ,使得本来需要多行展示的列合并在同一列展示,不过查询速度比较慢12. sum()over 函数
13. max,min等函数对于一些字符串的处理特别有用
14. select case when .....end 有时候可以替代where 条件避免关联
以后也可能会有新的更加方便的工具出来替代SQL,但是能够在SQL应用中掌握业务逻辑,熟悉业务指标,精通数据清理,对于数据分析方法游刃有余,那么不管走遍哪里都会不怕了。
有些小伙伴不知道本文内容和更多相关学习资料的请点赞收藏+评论转发+关注我,后面会有很多干货。我有一些面试题、架构、设计类资料可以说是程序员面试必备!所有资料都整理到网盘了,需要的话欢迎下载!私信我回复【000】即可免费获取