数据分析中的SQL如何解决业务问题?
编辑导语:作为一名数据人员,需要掌握SQL吗?掌握的程度需要到多少?作为一名专注于分析结论/项目在业务落地以实现增长的分析师,掌握SQL相关工作内容,有助于更好地解决业务问题。本文作者总结了一些SQL的必备知识与应用场景以及相关的实战应用。
数据分析人员需要掌握SQL到什么程度?
请问做一名数据分析人员,在SQL方面需要掌握到什么程度呢?会增删改查就可以了吗?还是说关于开发的内容也要会?不同阶段会有不同的要求吗?
作为专注数据分析结论/项目在业务落地以实现增长的分析师,建议在开始学习新技能前,先明确应用场景。有的放矢才能不枉费努力。
翻译过来就是:先了解与SQL相关的数据分析工作有哪些?有了目标,才能知道需要准备什么知识来应对。
按我目前与SQL相关的工作内容,为你提供以下参考:
食用说明:根据以下场景,选择需要重点学习的知识点。
一、SQL应用场景及必备知识
星标根据使用频率标记,而非重要性。
1.数据查询★★★
(1)业务场景
也就是常说的“提数”。
实际工作场景中,如果向IT提提数需求,一般都需要沟通+排期,所以最有效率的建议就是自己会从数据库里提数,此简单查询可以应对部分提数需求,例如运营想查看某段时间订单数据分析师除了自身的分析工作外,有时(甚至是经常)还需要应付产品、运营等部门同事的提数需求。
(2)必备知识
(1)简单查询
即最简单的关键字组合SELECT+FROM+WHERE+(BETWEEN/IN)是SQL查询的地基,此简单查询可以应对部分提数需求,例如运营想查看某段时间订单。
(2)多表查询
即INNERJOIN、LEFTJOIN等联结关键字,想象中的取数可能是直接在某个表SELECT想要的字段?
NO!实际上为了查询效率,数据会散落到数据库的各个角落,例如想要了解一笔订单情况,信息存在这些表中:订单流水表、订单详情表、商品详情表、门店表、会员表等。
该部分知识的关键在于「明确业务分析需求→选择合适的联结方式」。
2.数据更新★★☆
(1)业务场景
即“增删改”,该场景之所以仅两星的原因,是实际工作中,数据库运维部门给到我们数据分析师的数据库账号多半是只读权限,也就无法去“增删改”。
此外,还有数据管控的原因,所以此场景可能更多在于自建数据库中,如在电脑上新建虚拟机搭建数据库服务器,导入数据后方便进行下一步分析。
(2)必备知识数据库与表的创建、删除和更新
该部分知识点关键在于「字段类型的设置」要符合后续分析需求,如订单商品数量就要设成数值类型、订单日期设成日期类型等(因为见过都设成字符类型的表,所以就简单提一下)。
3.分析数据★★★
(1)业务场景
该部分可谓是数据分析师的核心工作。面对复杂的业务问题,重点在于将其拆解、转译成简单的SQL问题。
「案例」例如教育行业中某领导要求你“分析某课程的效果如何”→翻译:课程效果可通过学生成绩反映,即是要计算成绩最大值、最小值、学生成绩分布→SQL语句。
(2)必备知识
(1)汇总分析
即GROUPBY关键字。
(2)解决业务问题
如计算每个课程学生的平均成绩:SELECTavg(成绩)FROM成绩表GROUPBY课程
(3)复杂查询
如嵌套子查询、标量子查询、关联子查询,可应对更复杂的业务问题:
如找出每个课程最高分的学生→需要按课程分组后找到最高成绩记录,可以应用关联子查询:SELECT学生名字FROM成绩表aWHERE成绩=(SELECTmax(成绩)FROM成绩表bWHEREa.课程=b.课程)
(4)窗口函数
聚合/排序函数()OVER(PARTITIONBY…ORDERBY…)
此函数可解决复杂业务问题,如常见的TOPN问题:
网站名称:数据分析中的SQL如何解决业务问题?
文章路径:http://scyanting.com/article/sejdpp.html
数据分析人员需要掌握SQL到什么程度?
请问做一名数据分析人员,在SQL方面需要掌握到什么程度呢?会增删改查就可以了吗?还是说关于开发的内容也要会?不同阶段会有不同的要求吗?
作为专注数据分析结论/项目在业务落地以实现增长的分析师,建议在开始学习新技能前,先明确应用场景。有的放矢才能不枉费努力。
翻译过来就是:先了解与SQL相关的数据分析工作有哪些?有了目标,才能知道需要准备什么知识来应对。
按我目前与SQL相关的工作内容,为你提供以下参考:
食用说明:根据以下场景,选择需要重点学习的知识点。
一、SQL应用场景及必备知识
星标根据使用频率标记,而非重要性。
1.数据查询★★★
(1)业务场景
也就是常说的“提数”。
实际工作场景中,如果向IT提提数需求,一般都需要沟通+排期,所以最有效率的建议就是自己会从数据库里提数,此简单查询可以应对部分提数需求,例如运营想查看某段时间订单数据分析师除了自身的分析工作外,有时(甚至是经常)还需要应付产品、运营等部门同事的提数需求。
(2)必备知识
(1)简单查询
即最简单的关键字组合SELECT+FROM+WHERE+(BETWEEN/IN)是SQL查询的地基,此简单查询可以应对部分提数需求,例如运营想查看某段时间订单。
(2)多表查询
即INNERJOIN、LEFTJOIN等联结关键字,想象中的取数可能是直接在某个表SELECT想要的字段?
NO!实际上为了查询效率,数据会散落到数据库的各个角落,例如想要了解一笔订单情况,信息存在这些表中:订单流水表、订单详情表、商品详情表、门店表、会员表等。
该部分知识的关键在于「明确业务分析需求→选择合适的联结方式」。
2.数据更新★★☆
(1)业务场景
即“增删改”,该场景之所以仅两星的原因,是实际工作中,数据库运维部门给到我们数据分析师的数据库账号多半是只读权限,也就无法去“增删改”。
此外,还有数据管控的原因,所以此场景可能更多在于自建数据库中,如在电脑上新建虚拟机搭建数据库服务器,导入数据后方便进行下一步分析。
(2)必备知识数据库与表的创建、删除和更新
该部分知识点关键在于「字段类型的设置」要符合后续分析需求,如订单商品数量就要设成数值类型、订单日期设成日期类型等(因为见过都设成字符类型的表,所以就简单提一下)。
3.分析数据★★★
(1)业务场景
该部分可谓是数据分析师的核心工作。面对复杂的业务问题,重点在于将其拆解、转译成简单的SQL问题。
「案例」例如教育行业中某领导要求你“分析某课程的效果如何”→翻译:课程效果可通过学生成绩反映,即是要计算成绩最大值、最小值、学生成绩分布→SQL语句。
(2)必备知识
(1)汇总分析
即GROUPBY关键字。
(2)解决业务问题
如计算每个课程学生的平均成绩:SELECTavg(成绩)FROM成绩表GROUPBY课程
(3)复杂查询
如嵌套子查询、标量子查询、关联子查询,可应对更复杂的业务问题:
如找出每个课程最高分的学生→需要按课程分组后找到最高成绩记录,可以应用关联子查询:SELECT学生名字FROM成绩表aWHERE成绩=(SELECTmax(成绩)FROM成绩表bWHEREa.课程=b.课程)
(4)窗口函数
聚合/排序函数()OVER(PARTITIONBY…ORDERBY…)
此函数可解决复杂业务问题,如常见的TOPN问题:
网站名称:数据分析中的SQL如何解决业务问题?
文章路径:http://scyanting.com/article/sejdpp.html