01、数据导入
(1)新建数据库。
(2)用数据库管理工具 Navicat 连接数据库。
(3)通过 Navicat 将数据(如 Excel、SQL 脚本等格式)导入数据库。
02、数据清洗
数据清洗的目的是将数据按照业务分析需求,剔除异常值、离群值,使分析结果更准确地反映业务实际。
常见的应用如下:
是否存在空值:
是否存在重复数据:通过 GROUP BY 关键字实现。
是否存在业务定义以外的数据:例如,需要分析华南数据,而数据中出现华北数据。
03、数据格式化
这一步骤需要根据后续分析需求,调整表格结构、数据格式等,如出于数据存放原因,拿到的数据表格可能是一维表,不能满足分析需求,需要将其调整为二维表。
常见的应用如下:
时间函数:如将“时间戳”格式化为日期、时间、月份、周(常见于周分析)等,可通过“FROM_UNIXTIME”“DATE_FORMAT”等函数实现。
行列互换:如解决上述的一维表转为二维表的问题,可通过关键字“CASE WHEN”实现。
字段的拆分与合并:如将收货地址字段拆为省、市、镇等字段,可通过“CONCAT”“LEFT”“RIGHT”“SUBSTRING”等函数实现。
04、整体分析
在开始真正的分析之前,需要进行探索性数据分析(Exploratory Data Analysis,
EDA),也就是对现有数据进行整体分析,对现状有大体的了解。更重要的是,通过整体分析,找出业务运营存在的问题,进而提出业务目标,展开后续的深度分析。
常见的应用如漏斗分析:如 AARRR 模型、阿里营销模型 AIPL 等,通过简单的“COUNT”函数可直接实现。
05、建立视图
面对复杂的业务分析,SQL 语句也会变得复杂,往往需要不断嵌套。为了减少分析时语句的复杂性、避免重复执行相同语句,可以采用新建视图的方式,将重复性高的语句固定为视图,再在此基础上进行复杂查询。
新建视图:
06、用户分析
在整体分析中,明确业务问题、目标后,便可开始进行用户分析。根据分析目的的不同,采用不同的分析方法,常见的分析方法如下:
(1)“人货场”分析。
(2)“复购”分析。核心问题在于如何计算“复购”:
● 用“窗口函数 +DENSE_RANK()”统计每个订单是该用户的第几次消费,命名为 'N_CONSUME'。
● 第一次消费即为用户“首购订单”,大于或等于第二次消费的订单则为“复购订单”。
● 针对复购订单进行统计,即可进行复购分析。
(3)“RFM 模型”分析。核心问题在于如何定义阈值及人群划分:
● 通过“窗口函数”可计算出每个用户的 RFM 值:
R:每个用户最后消费日期,与分析日期相减的天数。
F:通过复购分析中得出的 N_CONSUME,计算最大消费次数。
M:简单地合计用户所有消费金额。
● 阈值:可通过计算所有用户的 RFM 平均值获得。
● 根据 RFM 高低值通过“CASE WHEN”将所有用户划分到八类人群中。
作为专注数据分析结论/项目在业务落地以实现增长的分析师,建议在开始学习新技能前,先明确应用场景。也就是先了解与 SQL 相关的数据分析工作有哪些,有了目标,才能知道需要准备什么知识来应对。
07、数据查询
● 业务场景
数据查询也就是常说的“提数”。在实际工作场景中,如果向 IT 人员提提数需求,一般都需要“沟通 + 排期”,所以最有效率的建议就是自己从数据库里提数。数据分析师除了自身的分析工作外,有时(甚至是经常)还需要应付产品、运营等部门的提数需求。
● 必备知识
简 单 查 询:即 最 简 单 的 关 键 字 组 合“SELECT+FROM+WHERE+(BETWEEN/IN)”。这个简单的查询可以应对部分提数需求,例如运营想查看某段时间订单。
多表查询:INNER JOIN、LEFT JOIN 等联结关键字。数据会散落到数据库的各个角落,如果想要了解一笔订单情况,信息存在以下这些表中:订单流水表、订单详情表、商品详情表、门店表、会员表等。该部分的关键在于“明确业务分析需求→选择合适的联结方式”。
08、分析数据
● 业务场景
分析数据可谓是数据分析师的核心工作。面对复杂的业务问题,重点在于将其拆解、转译成简单的 SQL 问题。例如,教育行业中某领导要求你“分析某课程的效果如何”,课程效果可通过学生成绩反映,即要计算成绩最大值、最小值、学生成绩分布,这时就要使用 SQL 语句。
● 必备知识
汇总分析:用 GROUP BY 关键字解决业务问题。如计算每个课程学生的平均成绩:
复杂查询:如嵌套子查询、标量子查询、关联子查询,可应对更复杂的业务问题。如找出每个课程最高分的学生时,需要按课程分组后找到最高成绩记录,可以应用关联子查询:
窗口函数:聚合 / 排序函数 OVER (PARTITION BY…ORDER BY…)。此函数可解决复杂业务问题,如常见的 TOP N 问题:找出每个课程成绩前三的学生,需要按课程分组对学生按成绩排名,再从中找出排名前三的学生:
09、数据更新
● 业务场景
数据更新即常说的“增删改”。该场景之所以仅有两星,是因为实际工作中,数据库运维部门给到数据分析师的数据库账号多半是只读权限,也就无法去“增删改”;此外,还有数据管控的原因。所以,此场景可能更多存在于自建数据库中,如在计算机上新建虚拟机搭建数据库服务器,导入数据后方便进行下一步分析。
● 必备知识
数据库与表的创建、删除和更新。该部分知识点关键在于“字段类型的设置”要符合后续分析需求,如订单商品数量就要设置成数值类型,订单日期设置成日期类型等。