Access操作与SQL语句:数据分析

前面我们学习了Access数据库中的数据合并、数据计算、数据分组、重复数据处理四大常用的数据处理方式。

数据处理的目的就是将采集到的的数据,用适当的处理方法整理加工,形成适合数据分析要求的样式,也就是一维表,为数据分析做好准备工作。

我们日常工作中所做的数据分析,主要指通过对比与细分进行现状分析及原因分析,通过数据分组了解其数据构成,甚至通过不同时间维度的对比,查找数据变化的原因,最后通过制作相关图标等对现状进行呈现及描述。

接下来我们学习再Access数据库中进行数据分析的方法,主要包含:

  • 简单统计
  • 分组统计
  • 交叉表统计

我们主要介绍SQL语句实现的方式。

一、简单统计

常用的统计函数如下所示:
在这里插入图片描述
我们以“订购明细表”为例,统计订单总数、订购金额总额、平均订单金额三个数据,SQL语句如下:

SELECT 
Count(订单编号) AS 订单总数,
Sum(订购金额) AS 订购金额总额,
Avg(订购金额) AS 平均订单金额
FROM 订购明细;

结果如下所示:
在这里插入图片描述

二、分组统计

我们在学习重复数据处理时用过GROUP BY子句,实现对数据按指定的分组字段进行分组的功能。
现在,我们同样以“订购明细表”,统计各个产品的订单总数、订购金额总额、平均订单金额三个数据,SQL语句如下:

SELECT 产品,
Count(订单编号) AS 订单总数,
Sum(订购金额) AS 订购金额总额,
Avg(订购金额) AS 平均订单金额
FROM 订购明细
GROUP BY 产品;

结果如下所示:
在这里插入图片描述
我们还想了解用户订购时段的分布信息,而原有的“订购明细表”只有“订购日期”字段,需要取出时段信息,可采用FORMAT函数:

SELECT FORMAT(订购日期,"h") AS 时段,
Count(订单编号) AS 订单数,
FROM 订购明细
GROUP BY FORMAT(订购日期,"h");

结果如下所示:
在这里插入图片描述
还是以“订购明细表”为例,我们需要了解不同年龄段的用户订购分布情况,并且订购用户存在重复情况,需要去重。操作步骤如下:

  1. 先将“订购明细表”与“用户明细表”按关键字段“用户ID”进行关联查询,并且可同时进行去重处理;
  2. 采用PARTITION函数法对用户年龄分组;
  3. 把查询结果作为子查询嵌套在分组统计查询汇总。

SQL语句如下:

SELECT 年龄分组,Count(用户ID) AS 用户数
FROM
(SELECT DISTINCT A.用户ID,PARTITION(B.年龄,1,100,5) AS 年龄分组
 FROM 订购明细 AS A, 用户明细 AS B
 WHERE A.用户ID = B.用户ID)
 GROUP BY 年龄分组;

结果如下所示:
在这里插入图片描述
这里需要说明的是:在Access数据库中进行数据去重处理时,需要使用嵌套查询,把数据去重结果作为子查询。

如果是需要了解各省份的订单数分布,无需先进行数据去重处理,那么就无需使用嵌套查询,SQL语句如下:

SELECT B.省份,Count(A.订单编号) AS 订单数
FROM 订购明细 AS A,用户明细 AS B
WHERE A.用户ID = B.用户ID
GROUP BY B.省份;

结果如下所示:
在这里插入图片描述

三、交叉表统计

1. 菜单操作法

交叉表统计需要借助“简单查询”功能来实现。我们以“用户明细表”为例,统计不同省份、性别的用户分布情况。操作步骤如下:

  1. 单击【创建】,单击【查询向导】按钮;
  2. 在弹出的【新建查询】对话框中,选择【交叉表查询向导】;
  3. 在弹出的【交叉表查询向导】第一个对话框中,选择【表】视图,并在列表框中选择“用户明细”表作为查询对象;
  4. 在弹出的第二个对话框【可用字段】中,选择“省份”作为行标题;
    在这里插入图片描述
  5. 在弹出的第三个对话框字段列中,选择“性别”作为标题;
    在这里插入图片描述
  6. 在弹出的第四个对话框中,选择“用户ID”作为每行和列交叉点的统计项,并在【函数】中,选择“Count”函数,并保持默认勾选的【是,包括各行小计】项;
    在这里插入图片描述
  7. 在第五个对话框中,输入该查询的名称。

结果如下所示:
在这里插入图片描述

2. SQL语句法

单击右下方的SQL按钮,得到简化后的SQL语句:

TRANSFORM Count(用户ID) AS 用户ID之计数
SELECT 省份, Count(用户ID) AS 总计 用户ID
FROM 用户明细
GROUP BY 省份
PIVOT 性别;

我们发现,相比分组统计的SQL语句,在前后增加了TRANSFORM与PIVOT语句。

只要在分组统计SQL语句的基础上,

  • 前后增加TRANSFORM与PIVOT语句;
  • 在TRANSFORM后面增加每个行与列交叉点统计函数及字段;
  • 在PIVOT后面增加要作为列标题的分组字段。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章