作者 | 数据海洋 
来源 | haiyangxinyong

“数据质量是生命线”,不管是对数据从业者来说,还是针对数据应用者来说,是一样重要的,所以在SQL语言来提取数据的时候一定要保证数据的准确性。

日常的数据需求来源于各个方面,每个岗位根据自己的岗位目标与定位需要不同的数据内容与数据粒度来进行支持各种业务决策。不管这个数据需求是来源于自己要做的数据分析,还是业务部门同事或者你的老板的需求,请读者在写SQL提取数据的时候牢记“九字箴言”:

“理逻辑、写代码、看数据”!

并且按这个逻辑顺序来执行,是数据工作很好的习惯,从而保证数据的准确性。

01 理逻辑

1. 理解清楚需求

收到的业务需求要解决什么问题,谁提出来的,业务需求的描述内容是什么?往往业务需求包括我们自己作为业务人员给数据团队人员提需求的时候,总会很粗的说要提取什么数据内容。但对于需求中很重要的二个部分没有进行描述:

① 数据要解决什么问题。

② 数据具体的内容以及具体内容业务定义。

所以收到需求的时候,不管你是在业务团队还是在数据团队,**先花时间去理解这个数据需求,**然后对业务需求做上你理解的相关说明。如果你在理解业务需求中,有很多不明白或者觉得不够清楚就记录下来,然后统一与需求提出人员一起当面进行沟通。

例如:需要看某段时间内,会员的购买金额。这个购买金额是如何计划的,假设在一个电商中,一个用户购买商品产生订单,在进行支付时间,订单商品金额可能会有多个内容。

举个具体例子,某个订单一共有10件商品,288元,在用户支付时候:

① 该会员使用了一张优惠券满100减20

② 该会员还使用在自己的积分支付抵扣了50元

在用户收到商品的时候,该会员退货了一件商品30元。【先不考虑退货后要扣除相应的优惠券金额,所以该会员退货30元,需要扣除相应比例优惠金额,最终退还给她的要小于30元。】

在这种场景下,要统计的金额是:

A. 订单商品金额288元

B. 还是扣除退货后的258元

C. 还是扣除优惠券、积分后的218元

D. 还是上述条件都要扣除188元;

如果你对业务比较熟悉,根据业务部门的需求以及你理解的目的做出相应的建议,然后在数据结果中进行备注。但是还是需要与业务需求人进行口径明确。

作者在工作中碰到过这个案例的时候,我和业务需求沟通的时候,我给他的建议是:我把会员的订单金额,我也统计好几个衍生的字段:优惠占比、退货占比,这也是会员购物行为要关注的重要行为,你可以根据这二个比例,再对会员进行价值分层后,再根据这二个指标来分析:会员的优惠特征,以及退货特征。这样可以通过这二个占比指标,进一步细分会员。例如:占比比较高的会员,如果数量达到一定规模,从而可以进一步制定更有针对性的策略。

1. 把业务需求转化为数据需求

在写SQL代码之前应该进行二步的操作:

①明确需求的业务内容。就是要提取哪些数据指标,以及要哪些维度。然后需要把对应的数据指标与维度进行业务角度进行内容定义明确。【可以进一步思考,每个数据指标可以用来衡量业务什么内容。】

② 把明确的业务定义转化为对应要提取数据指标,根据数据指标定义明确用什么样的逻辑来统计出相应的数据指标。

02写代码

在需求逻辑理完以后。

**1. 需要明确“数据原材料”在哪。**梳理一下各个要提取的数据指标需要的哪些表?哪些表中的哪些字段?对相关字段要进行哪些逻辑处理。

**2. 开始写SQL代码。**SQL代码尽量按代码规范来进行;在不影响代码美观的情况下,尽量详细进行相关的需求内容、代码行、字段进行备注说明。

在写完代码后,养成一个习惯。**花点时间去阅读一下写完的代码,**像在 dbeaver的客户端中,因为对语法的相关格式会高亮,所以稍微花时间就很容易检查出错误。

如果在企业的实际工作环境中,像一般代码如果没有注意的话,例如:时间范围,表关联产生迪卡尔积等很容易导致公司的整个数据库“卡住”的,或者一段代码的数据库跑半天还没有出来,但没有及时关闭。从而严重影响了公司其它同事或者相关数据应用的效率。

这些情况,我在工作中经常发生。所以我曾经在团队做个要求,新人或者业务部门的分析师必须有一个“师傅”,当他们写比较复杂的SQL的时间,师傅们需要帮助查看一下。

关于SQL代码的错误:

**1. 语法错误。**语法错误SQL会执行不下去,所以这是必须要看错误在哪些地方。

**2. 逻辑错误。**是指SQL程序没有报错,而且顺利的执行下去了。但是可能SQL语言跑出来的结果不是你想的,也就是跑出来的数据是错误的。逻辑错误形式:

① 没有跑出数据。这种和语法错误很容易发现。例如:会员表中的ID直接与订单表中的ID关联,没有报错。但是关联不上没有数据。从而需要检查代码是哪出问题。

② 有跑出数据。这种情况往往不用心的话,很难发现。例如:在过滤条件的时候,对时间的过滤可以缺少几天,或者需要相关过滤的值没有过滤;在统计会员数的时候,没有进行去重。这些因为sql语言代码顺利执行,所以可能不会引起去足够的重视去对代码进行检查。

03看数据

在SQL没有报语法错误,跑完后有数据的情况下。千万避免数据提取后,语法不报错,就直接数据复制到EXCEL,然后发给相关的同事或者领导。这样做非常不专业:如果出现数据错误非常容易导致决定失误或者明显的数据错误或者异常会让同事或者领导怀疑你的能力与做事态度,这在职场中很要命的哦!

**所以一定要检查一下,你提取的数据。**对数据进行相关查看,例如:看一下各个字段的最大最小值,看一下数据的记录数,对一些数据指标进行简单的比率计算。【这些内容放在excel上,相信花个10分钟足够。】结合你自己的基本的业务常识,就可以对提取的数据是否有明显错误或者可能存在错误进行判断。

再根据明显错误的内容或者异常的数据指标,回到代码中去检查是否问题。例如:在一个提取过去某段时间每周会员数的需求中,当提取出来的数据发现有2周的会员数据明显偏高。当你检查代码没有问题,如果你对业务不熟悉可能问一下之前的老同事这个数据是否正常,也许他会告诉是正常的,去年做了活动或者去年在这个时间点有疑似被刷单的了导致会员数增长异常。

当你把这个数据发给相关同事的时候,你会把这个情况备注说明在excel或者相关文档中。

假设一下,如果你提取的数据,经过上述流程和相关的检查,在发给同事中再把相关数据指标、数据提取的范围和内容进行说明,对明显的数据异常你也做了备注说明。你同事收到这样一份数据是一个“什么样的心情呢?”。

04 总结

数据工作是一个非常非常严谨的工作习惯和态度,这样用SQL代码统计出来的数据才不会是“有质量问题”的“产品”。有质量问题的产品会导致非常严重的后果,如果你数据出现错误,从而基于数据做出的决策有可能是“灾难性”的。

例如:你统计新会员数,如果你数据没有去重,可能会导致结果说某段时间广告投入效果很好,应该持续加大。所以严格按照上述的步骤来执行,才能让你分析的数据质量好,你的部门同事或者老板会对你的“专业性”给出非常高的赞扬。

数据分析师成长记(一):如何让你的数据处理更加专业而高效?相关推荐

  1. Python数据分析师养成记

    前言 从这周开始,罗罗攀开始更新新系列<Python数据分析师养成记>.该系列将以小白的视角出发,一步步的进阶Python数据分析. 学习路径 为了保证我们所学习的内容能用于工作,这里我在 ...

  2. 7个秘诀,带你由数据分析师成长为数据科学家

    全文共4047字,预计学习时长8分钟 通往数据科学之路 (Aleksandr Barsukov发布于 Unsplash) 数据科学的热浪席卷大多数行业,如<哈佛商业评论>所述,数据科学家已 ...

  3. 年薪50万的大数据分析师养成记【摘抄】

    以下是一位在数据分析领域打滚了N年后,写下的一些体会,一定能给新人一些借鉴的地方.(总结的不错,大家可以借鉴学习哦) 一.数据分析师有哪些要求? 1.理论要求及对数字的敏感性,包括统计知识.市场研究. ...

  4. 数据分析师成长路径-第一阶段

    第 一 阶 段 业 务 数 据 分 析 师 第1部分 Excel必备常用工具使用与高级技巧 第一章 Excel使用与高级技巧 1.1.EXCEL基础概念  1.2.数据处理01-导入外部数据  1.3 ...

  5. 数据分析师成长路径第三阶段

    第 三 阶 段 大 数 据 分 析 师 第1部分 大数据挖掘分析师之硬技能 - Java语言基础 第一章 初识Java  1.1  Java入门简介  1.2  Java开发环境配置详解  1.3  ...

  6. 数据分析师成长路径-第二阶段

    第 二 阶 段 建 模 分 析 师 第1部分 实用型大数据挖掘算法 第一章 玩转大数据:深入浅出大数据挖掘技术(Apriori算法.Tanagra工具.决策树)priori 算法. Tanagra 工 ...

  7. 数据分析师成长路径-第四阶段

    第 四 阶 段 数 据 分 析 专 家 第 1部分 数据分析专家之软技能 - 卓越的项目管理应用与实践 第一章 项目管理基础 1.1课程基础 1.2 战略管理 1.3 项目组合管理 1.4 项目选择 ...

  8. 数据分析师如何正确的提意见?(文末赠书)

    数据分析不只是数据的罗列,而是数据和分析的结合.数据层面包括数据获取.整合.可视化等操作:分析侧面则是结合业务目的和数据表现给出相应的数据结论.只要掌握数据工具就能获取.整合数据,而分析问题并给出有效 ...

  9. 数据分析师在岗3年小结!

    Datawhale干货 作者:小尧,数据分析师,Datawhale成员 小尧:本科财务类专业毕业后就进入职场打拼,在京东完成了从财务到数据分析的惊险一跃,目前是一家外企的数据分析师. 数据分析师工作的 ...

最新文章

  1. java swing开源组件_Squareness
  2. QT窗体控件自适应大小
  3. Alfred+AppleScript实现快速复制当前文件夹路径
  4. C# — 创建Windows服务
  5. php及时提醒反馈,php,实时交互_请问PHP脚本执行时如何实时提供反馈,php,实时交互 - phpStudy...
  6. Java加密与解密的艺术~数字证书~证书使用keytool
  7. HTML+CSS+JS实现 ❤️高光立体游戏卡片悬停ui特效❤️
  8. bit是python最快的bitcoin库_新的Bitcoinpython节点比以前的Python库快100倍
  9. HTML-错误页面介绍
  10. 如果您的iPhone关闭,静音或不打扰,警报是否会起作用?
  11. 复古传奇服务器维护时间,复古传奇手游刷怪时间
  12. 胃与十二指肠溃疡的食疗方
  13. 重视论文降重,应对论文查重
  14. 你还在“朋克式”养生?快来看看美莱的熬夜补救指南吧!
  15. img标签 src路径正确 但图片不显示
  16. 我对M4A文件格式的理解
  17. 电脑硬件及电脑配置知识大全
  18. Linux mint 16安装后的种种善后
  19. My97DatePicker日期插件WdatePicker.js的使用方法
  20. Vundle ,Vim Bundle

热门文章

  1. C++ ThreadPool
  2. JS -- base64实现图片下载功能
  3. GPU越做越大,快到极限了怎么办?
  4. DNS服务器上门维修电话,全国DNS服务器地址列举
  5. api之removeAll()使用避坑
  6. 如何使用手机免费将PDF转Word还不限页数
  7. Dom4j完整教程~CDATA详解
  8. C语言计算器为什么无法计算除法,算不了除法,为什么?
  9. jdbc 的连接方式 thin, oci
  10. 基于GMC/umat的复合材料宏细观渐近损伤分析(一)