08 -数据分析与SQL- Project(基于零售数据挖掘业务特征)

08 数据分析与SQL Project(基于零售数据挖掘业务特征)

文章目录

  • 08 数据分析与SQL Project(基于零售数据挖掘业务特征)
    • 1.建立数据库
    • 2.数据库查询
      • 数据字典
      • 业务场景
      • 项目提交
      • 评审要求
      • 示例思路
      • 补充Excel技巧

1.建立数据库

项目的流程是:

  • 下载本地工具(见本部分00导学)
  • 下载sqlite数据库(1.2M)
  • 打开并且浏览数据
  • 将感兴趣的数据筛选后输出为.csv文件
  • 用 Excel 处理此文件,并可视化(也可用其他工具)
  • 提交 PPT 报告(请详细看要求)
  • PS:在商品名字中有部分字符乱码请大家忽略

2.数据库查询

数据字典

  • SupplierID 和 CategoryName 是对应的,前面是数字编号,后面是分类名字
  • UnitPrice 单价
  • UnitsinStock 存量
  • UnitsOnOrder 订单量
  • ReorderLevel 再次订货水平(这个没有说明,可能是再次订货的发生概率之类的衡量指标)
  • 剩下指标没有很大意义,先不做分析。

不过在看数据的时候,还是会发现一些好玩的事情,比如看过豆腐这个吓人的价格之后,我吓的赶紧让家里人买了2块吃了下压压惊(要知道后面有个蟹棒24oz的价格还没有豆腐贵):
在这里插入图片描述
在这里插入图片描述

业务场景

这次的项目在项目的场景上更加真实,细节更多:

背景:
这里有一家经营各种食品批发的批发商,而是你是这家批发商的商业智能分析师。你负责将分析仪表板放在一起进行管理。他们要求你专注于其业务的一个维度,并创建一个仪表板,提供与该维度相关的各种汇总统计信息。

维度(视角):
根据背景的信息,这里可以选择的是4个维度。在工作场景中就是代表了4个视角(viewpoint),大家和公司交互的目的职责不同,所以会产生不同的视角。这里可以选择一个你最感兴趣的方面,尝试从他的角度进行数据分析,得出他关心问题的答案:

  • 客户
  • 供应商
  • 产品
  • 雇员

问题(示例):
要注意这里的问题是例子,真正的问题要根据上面选择的维度提升,比如从客户视角来分析,很少有人会关心哪些产品的销售额在增长的数据。

  • 我的客户分布在哪里?
  • 哪些公司在供应我销售的大部分产品?
  • 表现最好的员工是谁?
  • 哪些产品的销售额在增长?

项目提交

当使用SQL得出所需数据以后,通过导出方式将数据存储为csv文件:

08 -数据分析与SQL- Project(基于零售数据挖掘业务特征)_第1张图片

再之后就可以使用Excel做图并在PPT中完成工作了:

  • 至少四幻灯片;
  • 每张幻灯片对应一个可视化;
  • 每张幻灯片都需要有 1-2 句话的说明;
  • 需要包含可视化中用于创建数据的 SQL 查询(额外幻灯片,或者附在图片边上)。
  • (虽然项目没有说,但推荐做图还是使用Excel完成,也回顾下前面的电子表格操作)。

评审要求

为了能够快速高效的提交项目,在做复杂项目时,提前查看评审要求非常有用,比如这个项目对于SQL语句的要求是:

  • 每个 SQL 查询都需要包含一个或多个连接。
  • 每个 SQL 查询都需要包含一个或多个聚合。
  • 至少一个 SQL 查询包含子查询。
  • 学员在其提交的项目中至少使用了 4 个唯一 SQL 查询。

示例思路

比如我自己浏览了数据之后,决定从供应商的角度来看待这个数据。这几个列是从数据中的第一个视图(相当于提前定义好的虚拟表)举例的,鉴于上面说的要求,这里建议大家在写SQL时候,不要使用视图,而是直接使用数据文件中的表。

  • CategoryName 是对应的,前面是数字编号,后面是分类名字
  • UnitPrice 单价
  • UnitsinStock 存量
  • UnitsOnOrder 订单量
  • ReorderLevel 根据观察,这个值最大不大于30可能是重复订单发生的几率,30为30%。

如果我是这个食品批发销售商,我可能会和很多食品批发商进行合作,把我的货物放在这些食品商店出售,所以可能会有以下需要考虑的问题:

  1. 各批发商在我处的存货量有多大,会占用多少我公司的流动资金(假设产品需要预付货款)。
  2. 存量和订单间的关系,那些货需要定新货,以免耽误销售。(比如那些Order量比InStock量还大的商品)。
  3. 考察下整体销售各类别的销售占比,从各分类销售占比的情况考虑下是否调整各分类的比率(增加货减少某个分类的进货量)
  4. 基于上一个问题,预估下各分类预期销售额的情况。

因为项目中要求拆解出的csv不能再做排序筛选什么的,需要在SQL这里完成,所以要再细化下这4个问题所需数据的细节:

  1. UnitPrice * UnitsinStock 就是每个产品存货的现金流占用。这个可以看出来在每个产品以及品类的资金占用情况。(Products)。(-updated)这里搞了一个错误,上面的计算是一个产品的金额,但是一个Bill是要购买多个产品的。所以要用SUM()求和与GROUP BY OrderID来结合使用,才能求出一个Bill的金额。
  2. 可以用两个数字的差来判断 UnitsOnOrder - UnitsinStock
  3. 分组看下几个类别的百分比,饼图。
  4. (假设ReorderLevel为预测回购百分比)用UnitPrice * UnitsonOrder * ReorderLevel 进行估算。
  5. 以上每个问题另存为一个csv,分别做图。
  6. (updated)后来做的时候因为要每个sql都用join和group,也不使用视图,与设想变化较大,此处略过。

补充Excel技巧

在我进行其中第1个图的时候,10个Bill的X坐标如果对应订单号,没有什么意义。就想对应下订单时间,但是通过SQL导出时间之后,在EXCEL做图中会被默认转换为时间格式,按照时间连续x序列进行排列。造成了中间没有订单的日子都是空的,十分影响表达。

我用的方式是:先将输出的时间通过‘时间’格式设置为‘xx年x月’(下图中的datename1),再把这个列copy到一个note文件中。之后建立一个新列(下图中的datename2),再copy回来并且选‘只是值’。最后在Bar图的时候,单独选择x轴标签选中date-name2列就可以了:

08 -数据分析与SQL- Project(基于零售数据挖掘业务特征)_第2张图片

你可能感兴趣的:(Udacity,SQL学习指导)