用SQL做一份数据分析报告,涉及哪些知识点?

简介: 在工作中,每个数据分析师都离不开做数据分析报告,而一份可落地的报告更是要求灵活地应用工具及理论知识。接下来,我们从工具应用的角度,看看如何用SQL做一份完整的数据分析报告。

640.png

01、数据导入

(1)新建数据库。

(2)用数据库管理工具 Navicat 连接数据库。

(3)通过 Navicat 将数据(如 Excel、SQL 脚本等格式)导入数据库。

02、数据清洗

数据清洗的目的是将数据按照业务分析需求,剔除异常值、离群值,使分析结果更准确地反映业务实际。

常见的应用如下:

是否存在空值:

640.png


是否存在重复数据:通过 GROUP BY 关键字实现。

640.png


是否存在业务定义以外的数据:例如,需要分析华南数据,而数据中出现华北数据。

03、数据格式化

这一步骤需要根据后续分析需求,调整表格结构、数据格式等,如出于数据存放原因,拿到的数据表格可能是一维表,不能满足分析需求,需要将其调整为二维表。

常见的应用如下:
时间函数:如将“时间戳”格式化为日期、时间、月份、周(常见于周分析)等,可通过“FROM_UNIXTIME”“DATE_FORMAT”等函数实现。

行列互换:如解决上述的一维表转为二维表的问题,可通过关键字“CASE WHEN”实现。

字段的拆分与合并:如将收货地址字段拆为省、市、镇等字段,可通过“CONCAT”“LEFT”“RIGHT”“SUBSTRING”等函数实现。

04、整体分析

在开始真正的分析之前,需要进行探索性数据分析(Exploratory Data Analysis,

EDA),也就是对现有数据进行整体分析,对现状有大体的了解。更重要的是,通过整体分析,找出业务运营存在的问题,进而提出业务目标,展开后续的深度分析。

常见的应用如漏斗分析:如 AARRR 模型、阿里营销模型 AIPL 等,通过简单的“COUNT”函数可直接实现。

05、建立视图

面对复杂的业务分析,SQL 语句也会变得复杂,往往需要不断嵌套。为了减少分析时语句的复杂性、避免重复执行相同语句,可以采用新建视图的方式,将重复性高的语句固定为视图,再在此基础上进行复杂查询。
新建视图:

640.png

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 关键字解决业务问题。如计算每个课程学生的平均成绩:

640.png


复杂查询:如嵌套子查询、标量子查询、关联子查询,可应对更复杂的业务问题。如找出每个课程最高分的学生时,需要按课程分组后找到最高成绩记录,可以应用关联子查询:

640.png


窗口函数:聚合 / 排序函数 OVER (PARTITION BY…ORDER BY…)。此函数可解决复杂业务问题,如常见的 TOP N 问题:找出每个课程成绩前三的学生,需要按课程分组对学生按成绩排名,再从中找出排名前三的学生:

640.png

09、数据更新

● 业务场景

数据更新即常说的“增删改”。该场景之所以仅有两星,是因为实际工作中,数据库运维部门给到数据分析师的数据库账号多半是只读权限,也就无法去“增删改”;此外,还有数据管控的原因。所以,此场景可能更多存在于自建数据库中,如在计算机上新建虚拟机搭建数据库服务器,导入数据后方便进行下一步分析。

● 必备知识

数据库与表的创建、删除和更新。该部分知识点关键在于“字段类型的设置”要符合后续分析需求,如订单商品数量就要设置成数值类型,订单日期设置成日期类型等。

目录
相关文章
|
8月前
|
SQL 存储 数据挖掘
大模型与数据分析:探索Text-to-SQL(下)
大模型与数据分析:探索Text-to-SQL(下)
837 3
|
8月前
|
SQL 自然语言处理 数据挖掘
大模型与数据分析:探索Text-to-SQL(上)
大模型与数据分析:探索Text-to-SQL(上)
3652 0
|
8月前
|
SQL 自然语言处理 数据挖掘
大模型与数据分析:探索Text-to-SQL(中)
大模型与数据分析:探索Text-to-SQL(中)
1264 0
|
15天前
|
SQL 数据挖掘 数据库
这可能是最适合解决 SQL 数据分析痛点的编程语言
数据分析师常需处理各种数据操作,如过滤、分组、汇总等,SQL 在这些基本需求上表现得心应手。然而,面对本地文件数据或更复杂需求时,SQL 的局限性显现。SPL(Structured Process Language)则提供了更灵活的解决方案,无需数据库环境,直接从文件计算,代码简洁易懂,调试工具强大,极大提升了数据分析的效率和交互性。
|
2月前
|
SQL 数据挖掘 Python
数据分析编程:SQL,Python or SPL?
数据分析编程用什么,SQL、python or SPL?话不多说,直接上代码,对比明显,明眼人一看就明了:本案例涵盖五个数据分析任务:1) 计算用户会话次数;2) 球员连续得分分析;3) 连续三天活跃用户数统计;4) 新用户次日留存率计算;5) 股价涨跌幅分析。每个任务基于相应数据表进行处理和计算。
|
5月前
|
SQL 数据挖掘
7张图总结:SQL 数据分析常用语句!
7张图总结:SQL 数据分析常用语句!
|
5月前
|
前端开发 Java JSON
Struts 2携手AngularJS与React:探索企业级后端与现代前端框架的完美融合之道
【8月更文挑战第31天】随着Web应用复杂性的提升,前端技术日新月异。AngularJS和React作为主流前端框架,凭借强大的数据绑定和组件化能力,显著提升了开发动态及交互式Web应用的效率。同时,Struts 2 以其出色的性能和丰富的功能,成为众多Java开发者构建企业级应用的首选后端框架。本文探讨了如何将 Struts 2 与 AngularJS 和 React 整合,以充分发挥前后端各自优势,构建更强大、灵活的 Web 应用。
67 0
|
5月前
|
SQL 数据挖掘 关系型数据库
SQL中的聚合函数:数据分析的强大工具
【8月更文挑战第31天】
186 0
|
5月前
|
SQL 数据采集 算法
【电商数据分析利器】SQL实战项目大揭秘:手把手教你构建用户行为分析系统,从数据建模到精准营销的全方位指南!
【8月更文挑战第31天】随着电商行业的快速发展,用户行为分析的重要性日益凸显。本实战项目将指导你使用 SQL 构建电商平台用户行为分析系统,涵盖数据建模、采集、处理与分析等环节。文章详细介绍了数据库设计、测试数据插入及多种行为分析方法,如购买频次统计、商品销售排名、用户活跃时间段分析和留存率计算,帮助电商企业深入了解用户行为并优化业务策略。通过这些步骤,你将掌握利用 SQL 进行大数据分析的关键技术。
261 0
|
5月前
|
SQL 数据挖掘 Serverless
SQL 窗口函数简直太厉害啦!复杂数据分析的超强利器,带你轻松攻克数据难题,快来一探究竟!
【8月更文挑战第31天】在数据驱动时代,高效处理和分析大量数据至关重要。SQL窗口函数可对一组行操作并返回结果集,无需分组即可保留原始行信息。本文将介绍窗口函数的分类、应用场景及最佳实践,助您掌握这一强大工具。例如,在销售数据分析中,可使用窗口函数计算累计销售额和移动平均销售额,更好地理解业务趋势。
96 0