Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据分析中的SQL如何解决业务问题

数据分析中的SQL如何解决业务问题

原创
作者头像
饼干哥哥
发布于 2023-01-07 15:49:39
发布于 2023-01-07 15:49:39
1.4K0
举报

本文来自知乎问答。undefined提问:数据分析人员需要掌握sql到什么程度?undefined请问做一名数据分析人员,在sql方面需要掌握到什么程度呢?会增删改查就可以了吗?还是说关于开发的内容也要会?不同阶段会有不同的要求吗?

正文:

作为专注数据分析结论/项目在业务落地以实现增长的分析师,建议在开始学习新技能前,先明确应用场景。有的放矢才能不枉费努力。

翻译过来就是:先了解与SQL相关的数据分析工作有哪些?有了目标,才能知道需要准备什么知识来应对。

按我目前与SQL相关的工作内容,为你提供以下参考:

(食用说明:根据以下场景,选择需要重点学习的知识点)

SQL应用场景及必备知识:

(星标根据使用频率标记,而非重要性)

数据查询 ★★★

业务场景

也就是常说的“提数”。

实际工作场景中,如果向IT提提数需求,一般都需要沟通+排期,所以最有效率的建议就是自己会从数据库里提数

数据分析师除了自身的分析工作外,有时(甚至是经常)还需要应付产品、运营等部门同事的提数需求

必备知识

  • 简单查询

即最简单的关键字组合SELECT +FROM +WHERE +(BETWEEN /IN) 是SQL查询的地基

此简单查询可以应对部分提数需求,例如运营想查看某段时间订单

  • 多表查询 即INNER JOIN、LEFT JOIN 等联结关键字

想象中的取数可能是直接在某个表SELECT想要的字段?

NO! 实际上为了查询效率,数据会散落到数据库的各个角落,例如想要了解一笔订单情况,信息存在这些表中:订单流水表、订单详情表、商品详情表、门店表、会员表等。

该部分知识的关键在于「明确业务分析需求→选择合适的联结方式」

数据更新 ★★☆

业务场景

即题主所说的“增删改”

该场景之所以仅两星的原因,是实际工作中,数据库运维部门给到我们数据分析师的数据库账号多半是只读权限,也就无法去“增删改”;

此外,还有数据管控的原因

所以此场景可能更多在于自建数据库中,如在电脑上新建虚拟机搭建数据库服务器,导入数据后方便进行下一步分析

必备知识

  • 数据库与表的创建、删除和更新

该部分知识点关键在于「字段类型的设置」要符合后续分析需求,如订单商品数量就要设成数值类型、订单日期设成日期类型等。

(因为见过都设成字符类型的表,所以就简单提一下)

分析数据 ★★★

业务场景

该部分可谓是数据分析师的核心工作

面对复杂的业务问题,重点在于将其拆解、转译成简单的SQL问题

「案例」例如教育行业中某领导要求你“分析某课程的效果如何”→ 翻译:

课程效果可通过学生成绩反映,即是要计算成绩最大值、最小值、学生成绩分布 → SQL语句

必备知识

  • 汇总分析

即GROUP BY关键字

解决业务问题:

如计算每个课程学生的平均成绩:

代码语言:sql
AI代码解释
复制
SELECT avg(成绩) FROM 成绩表 GROUP BY 课程
  • 复杂查询

如嵌套子查询、标量子查询、关联子查询

可应对更复杂的业务问题:

如找出每个课程最高分的学生 → 需要按课程分组后找到最高成绩记录,可以应用关联子查询:

代码语言:sql
AI代码解释
复制
SELECT 学生名字 FROM 成绩表 a WHERE 成绩 = (SELECT max(成绩) FROM 成绩表 b WHERE a.课程=b.课程)
  • 窗口函数

聚合/排序函数 ( ) OVER (PARTITION BY ..ORDER BY..)

此函数可解决复杂业务问题,如常见的TOP N问题:

找出每个课程成绩前三的学生 → 按课程分组对学生按成绩排名,再从中找出排名前三的学生:

代码语言:sql
AI代码解释
复制
SELECT 学生名字 FROM ( SELECT 学生名字, dense_rank()over(partition by 课程 order by 成绩 desc) as '成绩排名' FROM 成绩表) t WHERE t.成绩排名<4

数据产品 ★☆☆

业务场景

对于部分岗位,如我在的集团用户数据中心,需要负责搭建如CDP这样的数据产品,虽然多数情况下是由开发负责数据库工作,但是对于里面核心的功能如运营指标体系、模型报表等,背后的计算逻辑、数据流,要求数据分析师了如指掌。

此外,对于刚开始建立数据分析团队的部门,还存在【数据同步】的需求,即要从ERP、CRM等系统将需要分析的原数据同步到自己的数据库里便于分析,而此需求需要通过存储过程实现。

必备知识

  • 存储过程

即PROCEDURE,可以将某业务需求,或者数据产品中的报表对应的所有SQL语句放在一起,方便一键执行,如RFM模型里的语句可以写成存储过程,计算结果实时同步到前端

  • 「SQL SERVER」计划

面对「数据同步」需求,有了存储过程后,还需要进行定时任务,在非业务时间执行数据同步的存储过程。

如是使用SQL SERVER版本,可以通过“计划”实现定时任务。

项目部署 ★☆☆

业务场景

数据分析结论在业务场景测试有效后,就需要通过报表、模型等方式落地形成业务常态。

而这个项目落地,可能交给开发处理,但更有效的方式是分析师可以参与到部署的过程中。

而这个过程,其中一个重要的部分就是数据库的设计:

如何设计表格以提高计算效率。

必备知识

  • 数据库设计与「SQL三范式」

SQL三范式的目的在于解决数据冗余、计算效率低等问题,另一方面对数据增加、修改更友好。


这部分从业务场景出发,讨论业务问题的解决方案与SQL知识点的关系,帮助答主解决学习了SQL之后可以做什么的问题。

实战如何分析用户?

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

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

数据导入

  • 新建数据库
  • 用优秀的数据库管理工具Navicat 连接数据库
  • 通过Navicat 将数据(如Excel、SQL脚本等格式)导入数据库

数据清洗

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

常见的步骤如下:

  • 是否存在空值:WHERE `字段名` is null
  • 是否存在重复数据:

通过GROUP BY关键字实现

代码语言:sql
AI代码解释
复制
SELECT COUNT(*) FROM 表名 GROUP BY 字段名 HAVING COUNT(*) >1
  • 是否存在业务定义以外的数据:

如需要分析华南区域数据,而数据中出现华北数据

数据格式化

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

常见的步骤如下:

  • 时间函数:

如将「时间戳」格式化为日期、时间、月份、周几(常见于周分析)等,可通过「FROM_UNIXTIME」「DATE_FORMAT」等函数实现

  • 行列互换:

如解决上述的一维表转为二维表的问题,可通过关键字「CASE WHEN」实现

  • 字段的拆分与合并:

如将收货地址字段拆为省、市、镇等字段,可通过「CONCAT」「LEFT」「RIGHT」「SUBSTRING」等函数实现

整体分析

在开始真正的分析之前,需要进行探索性数据分析(Exploratory Data Analysis,EDA),也就是对现有数据进行整体分析,对现状有大体的了解。更重要的是,通过整体分析,找出业务运营存在的问题,进而提出业务目标,展开后续的深度分析。

常见的步骤如下:

  • 漏斗分析:

如海盗模型AARRR,阿里营销模型AIPL等,通过简单的「COUNT」函数,直接数就可实现

建立视图

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

新建视图:

代码语言:sql
AI代码解释
复制
CREATE VIEW 视图名 AS SELECT..

用户分析

从整体分析中,明确业务问题、目标后,便可开始进行用户分析。根据分析目的的不同,采用不同的分析方法,而常见的分析方法如下:

  • 「人货场」分析
  • 「复购」分析,核心问题在于如何计算“复购”:

用「窗口函数+DENSE_RANK()」统计每个订单是该用户的第几次消费,命名为'N_CONSUME'

第一次消费即为用户“首购订单”,大于等于第二次消费的订单则为“复购订单“

针对复购订单进行统计,即可进行复购分析

  • 「RFM模型」分析,核心问题在于如何定义阈值及人群划分:

通过【窗口函数】可计算出每个用户的RFM值:

R:每个用户最后消费日期,与分析日期相减的天数即为R

F:通过复购分析中得出的N_CONSUME,计算最大消费次数即为F

M:简单地SUM用户所有消费金额,即为M

阈值:可通过计算所有用户的R,F,M平均值获得

所有用户的RFM值与阈值比较,通过「CASE WHEN」转为 '高'、'低' 两个值

根据RFM高低值通过「CASE WHEN」将所有用户划分到八个人群中

总结建议

根据前文进行的分析,即可总结得出的结论。此外,在业务分析中,更重要的是如何结合业务场景来给出可落地的业务建议。

愿无知者有力,愿有力者前行。

我是@饼干哥哥,持续为您打造数字化时代的分析能力。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
我的数据分析师转型之路,从零到字节跳动数据分析师
从一个什么都不懂的小白,到现在字节跳动的数据分析师,我用了大概1年的时间,在这里想给大家分享一下我的转行经历,希望能有一些帮助。
全栈程序员站长
2022/06/29
9401
我的数据分析师转型之路,从零到字节跳动数据分析师
数据分析那些事(数据分析师入门必看)
经常有网友会对数据分析方面有一些困惑,并且咨询我该怎么办?并且经常是同样的问题,所以觉得有必要对一些经典共性的问题进行整理,与大家分享,这里并非标准答案,仅作参考! 欢迎提出自己对数据方面的疑问,将在此篇将持续更新,敬请关注。 -------------------我不是完美的分割线----------------- Q1:大数据是什么? ---- 答:从海量的数据里进行撷取、管理、处理、并整理之后,获得你需要的资讯。大数据的特征归纳为4个“V”(量Volume,多样Variety,价值Valu
小莹莹
2018/04/23
3.5K0
数据分析那些事(数据分析师入门必看)
10周拿下数据分析师认证 !!
真诚的向大家推荐,《腾讯课堂数据分析师认证课程》,该课程也是腾讯课堂指定认证课程。专为在校学生、0~3年职场新人量身定制,真正体系化、专业化帮大家提升数据分析能力,成为大厂抢手的数据分析人才。 10种商业模型 面对不同的场景,应用不同分析模型解决问题 5W2H分析模型、AARRR分析模型、RFM客户价值模型、A/B 测试模型、用户分成模型、SWOT分析模型、购物篮分析模型、波士顿矩阵分析、生命周期模型、企业战略模型 9大企业项目实战 全程直播教学 每个项目均由多位专业数据分析师精心挑选,从数据到课程知识
张俊红
2022/04/21
7280
10周拿下数据分析师认证 !!
MySQL入门学习笔记——七周数据分析师实战作业
本篇推送主要涉及SQL语言中较为复杂的子查询与函数嵌套。 虽然这个MySQL系列取名为MySQL基础入门,但是个人不打算做单个函数的用法总结,或者说简单罗列,(这些内容你可以通过很多途径了解)因为一方面以前有过SQL基础方面的学习经历(本科的计算机必修课以及计算机等级考试)现在应该更加深入一些,另一方面SQL是一门数据分析语言,单纯的一个两个函数基本很少能解决问题。 SQL语言不像R语言和Python那种面向对象的语言,提供了各种灵活多变的的可用方法以及成千上万的高效解决工具,更没有提供像管道函数那样的参
数据小磨坊
2018/04/12
1.8K0
MySQL入门学习笔记——七周数据分析师实战作业
数据分析该怎么入门,一名合格的数据分析师该具备什么哪些技能?
当然对于数据分析师,技术也是非常重要的,目前互联网公司每天收到的打点数据(记录用户的点击,浏览等行为)一般都是GB甚至TB级别的,如果说你只会用Excel,肯定是完成不了分析工作的,所以如果你准备进入数据分析行业,以下的技术能力最好还是都具备。
Awesome_Tang
2020/01/15
1.2K1
数据分析该怎么入门,一名合格的数据分析师该具备什么哪些技能?
入职数据分析岗,该拥有的必备条件!
入行之后,我才发现数据分析其实可以分为两种:一种类似产品经理、一种偏向数据挖掘,类似产品经理向更加注重业务,对业务能力要求比较高;数据挖掘向更加注重技术,对算法代码能力要求比较高。
1480
2019/08/06
9270
【干货】数据分析师的完整知识结构
作为数据分析师,无论最初的职业定位方向是技术还是业务,最终发到一定阶段后都会承担数据管理的角色。因此,一个具有较高层次的数据分析师需要具备完整的知识结构。 1. 数据采集 了解数据采集的意义在于真正了解数据的原始面貌,包括数据产生的时间、条件、格式、内容、长度、限制条件等。这会帮助数据分析师更有针对性的控制数据生产和采集过程,避免由于违反数据采集规则导致的数据问题;同时,对数据采集逻辑的认识增加了数据分析师对数据的理解程度,尤其是数据中的异常变化。比如: Omniture中的Prop变量长度只有100个字符
CDA数据分析师
2018/02/11
6340
30岁,放弃国企稳定的工作,转行数据分析
在决定转行之前,很多亲朋好友听说之后,大部分都是劝我“年龄不小了,就不要折腾了”。
CDA数据分析师
2022/06/28
5420
30岁,放弃国企稳定的工作,转行数据分析
如何做好一个数据分析专题并落地应用
当一个公司的业务团队,可以比较方便准确、及时、完整的看到数据,往往都会很容易从数据的变化中看到业务问题。再通过关键业务维度的拆分,可以定位清楚业务问题发生的版块、准确衡量业务变化影响大小。
张俊红
2020/01/17
4730
如何做好一个数据分析专题并落地应用
你距离被Facebook认可的数据分析师,还差点什么?
经常有小伙伴在各种渠道问我,数据分析师怎么入门?应该读什么书?如何能成为被大公司认可的数据分析师? Facebook 数据分析师邹昕曾分享过这样一张“数据分析核心技能地图”: 如果按照图上的标准,你正
CDA数据分析师
2018/02/13
1.1K0
你距离被Facebook认可的数据分析师,还差点什么?
Python不香吗,为什么还要学数据分析?
有读者问我,看到现在大厂都在招数据分析师,薪资也非常有吸引力,我会用 SQL 和 Excel,还会一点 Python,能不能去应聘?
刘早起
2020/11/05
1K0
【SQL技能】浅谈数据分析中的SQL
很久没写东西了,正好群里有童鞋最近要换工作,提到有关数据库方面的问题,个人认为,做数据分析的并没有必要把数据库开发之类的弄懂,你只需要从相应的数据库中调用你需要的数据即可,至于数据库设计相关的安全事务,开发之类的问题那是数据库工程师的事情,而作数据分析的你了解SQL语言即可。当然,谁都不会嫌自己的知识多,掌握的东西越多对自己的发展当然也就越有利。 了解SQL的必要性 俗话说“巧妇难为无米之炊”,没有数据怎么分析。而SQL对于你来说就好比电脑的键盘鼠标,虽说没有了它也能照常运行,但对使用它的人来说灵活
陆勤_数据人网
2018/02/27
1.8K0
完整数据分析流程:Python中的Pandas如何解决业务问题
作为万金油式的胶水语言,Python几乎无所不能,在数据科学领域的作用更是不可取代。数据分析硬实力中,Python是一个非常值得投入学习的工具。
饼干哥哥
2023/01/01
1.7K0
如何入门数据分析?
如果你刚开始学习数据分析,那么怎么入门呢?其实各大招聘网站的数据分析职位就是一个很好的参考。那么数据分析师究竟需要哪些技能呢?
数据社
2020/05/25
8710
4个数据分析师的必备技能,让你不走弯路!
优秀的数据分析师需要具备这样一些素质:有扎实的 SQL 基础,熟练使用 Excel,有统计学基础,至少掌握一门数据挖掘语言(R、SAS、Python、SPSS),有良好的沟通和表达能力,做好不断学习的准备,有较强的数据敏感度和逻辑思维能力,深入了解业务,有管理者思维,能站在管理者的角度考虑问题。
Python数据科学
2019/03/18
8590
4个数据分析师的必备技能,让你不走弯路!
Day06-数据分析在各行各业的应用与数据思维
数据分析在各行各业的应用 计算机、金融、财务会计、医药专业、艺术专业、语言类专业、法律专业、设计、电商 相信很多人都听到过不少次数据分析这一词,而数据分析这个次近几年来随着互联网的快速发展,成为商业世界中的流行语 很多具有远见卓识的公司很早就已经开始去“智能地使用数据”,来收集用户行为画像,对业务进行风险分析或者是对企业进行更有效地管理 一般来说越是大型的,数据丰富的公司,尤其是那些会有严格监管的大型公司,多年来一直从事以数据为主导的决策 企业为更好地了解其客户而进行的数据分析先驱-随后的数据分析被用于开展针对性强的目标有影响力的营销活动,来引导企业进行更快速的成长, 下面开门见山带大家看一下数据分析岗位所在的典型行业
用户2225445
2023/10/16
3090
Day06-数据分析在各行各业的应用与数据思维
想学数据分析但不会Python,过来看看SQL吧(上)~
作者:贾胜杰,硕士,退役军人,电气工程专业,现成功转行K12领域数据挖掘工程师,不仅在数据清理、分析和预测方向,而且在自制力和高效学习方面都有丰富经验。 编辑:王老湿
小小詹同学
2019/10/31
1.4K0
赠书|机器学习、数据科学、数据分析,到底有啥区别?
之前我是数据分析师的时候,我想继续深造成为一名数据科学家,我意识到两者有很大不同。并不是说数据科学与数据分析用完全不一样的工具和编程语言,我甚至觉得数据科学是数据分析的一种形式,因为最终你是在与数据打交道——转换格式,进行可视化,得出可用的结论。
统计学家
2020/06/18
9630
赠书|机器学习、数据科学、数据分析,到底有啥区别?
「Sqlserver」数据分析师有理由爱Sqlserver之八-最刚需的数据导入导出功能-导出篇
和前一篇提及的,数据在各业务系统里的导出接口十分单一,大部分是一些Excel导出的功能。
Excel催化剂
2021/08/19
1.4K0
数据分析面试必考—SQL快速入门宝典
SQL全称Structured Query Language,说人话就是结构化查询语言。毫不夸张地说,它是数据分析必会技能Top1,因为没有哪个初级数据分析师的面试能跨过SQL技能考核这一项的。
用户8612862
2021/05/13
4.6K0
数据分析面试必考—SQL快速入门宝典
推荐阅读
相关推荐
我的数据分析师转型之路,从零到字节跳动数据分析师
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档