精通MS-ACCESS SQL之基础篇(07)
时 间:2017-11-17 17:12:09
作 者:Big Young ID:252 城市:襄阳
摘 要: ACCESS SQL 的 GROUP BY 的用法。
正 文:
第七节 对查询记录进行分组统计
对于通过调查得到的数据,虽然经过审核、排序等整理手段给予了处理,但由于数据庞杂,还不能直接进入对数据的分析阶段。在此之前,有必要对数据进行分组处理,以反映数据分布的特征及规律。从一定意义上说,数据整理的中心任务就是分组和编制频数分布。
数据分组是根据统计研究的需要,将原始数据按照某种标准划分成不同的组别,分组后的数据称为分组数据。数据分组的主要目的是观察数据的分布特征。数据分组后再计算出各组中数据出现的的频数,就形成了一张频数分布表。
对于非数值型数据就是依据属性的不同将其划分为若干组,对于数值型数据就是依据数值的不同将数据划分为若干组。在社会经济统计研究中,数据分组的作用在于:划分现象的类型、研究总体的结构与现象之间的依存关系。
在ACCESS SQL中分组是通过“GROUP BY”子句来实现的。
一、“GROUP BY”的一般语法
在查询中,“GROUP BY”子句使用频率非常高,其基本语法为:
Select 字段1, 汇总函数(字段2) FROM 表名 GROUP BY 字段1;
这里“字段1”是分组要依据的字段,“字段2”是与合计函数一起要对其进行统计的字符段,“表名”就是与以前讲的一样是要被查询的数据库表的名称。汇总通常是与SQL的合计函数一起应用来实现汇总统计的。合计函数,又叫汇总函数或叫聚合函数,ACCESS SQL提供了“SUM、AVG、MAX、MIN、COUNT等汇总函数。
二、通过设置一个字段条件进行分组汇总
我们还是打开前面创建并使用的示例数据库“TEST.ACCDB”,用“Select * FROM 学生信息;”来查询学生信息表,结果如图7-1。

图7-1:查看学生信息表中的全部记录
这个示例表中的记录比较少,我们可以一眼看出有多少条记录,如果记录比较多就要进行统计了,我们用如下SQL语句:
Select COUNT(*) AS 记录总数 FROM 学生信息;
运行后会统计出共有10条记录,如图7-2所示。

图7-2:汇总统计的记录总数
现在如果我们想要了解全部学生中男女各有多少人,就是需要用“Select 性别, COUNT(姓名) AS 人数 FROM 学生信息 GROUP BY 性别;”这样的SQL语句进行查询,其查询结果如图7-3。

图7-3:按一个字段分组查询统计
三、根据多个列的字段进行分组的统计
在现实的统计工作中,需求是多样的,有时依据一个字段分组并不能满足要求,需要同时依据多个字段进行分组统计。我们还是以“学生信息”表为例来说明,如果想统计表中每个民族的男女生人数,我们就要用到“性别”及“民族”这两个字段了,如:“Select 民族, 性别, COUNT(性别) AS 人数 FROM 学生信息 GROUP BY 民族, 性别;”,组成一个查询,示例如图7-4。

图7-4:多个字段条件进行查询
查询后的结果如图7-5所示:

图7-5:多个字段条件查询结果
不过这种查询看起来也不是很直观,如果想更直观的查看,就要用到以后才会学到的交叉表查询了。
四、设置区间条件进行分组查询
有时候在统计中,还要求根据时间段或者区间来进行汇总统计,这时我们还需要用到ACCESS中的VBA涵数,用“GROUP BY”与相关函数结合进行汇总统计,如,我们要统计“学生信息”表中不同年代的学生中各民族各有多少人,可以用“Select IIF(出生日期>=#1980-1-1# AND 出生日期<=#1989-12-31#,"80年代","90年代") AS 年代, 民族, COUNT(民族) AS 人数 FROM 学生信息 GROUP BY IIF(出生日期>=#1980-1-1# AND 出生日期<=#1989-12-31#,"80年代","90年代"), 民族;”这样的SQL语句,如图7-6所示。

图7-6:根据区间条件创建的分组查询
运行该查询,我们就可以得到每个年代中每个民族的学生的人数,如图7-7所示。
图7-7:按区间条件分组查询的结果
好了,分组查询今天就学到这里,其它内容稍后继续……
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)
- 【Access Dsum示例】...(12.16)

学习心得
最新文章
- 仓库管理实战课程(9)-开发往来单...(04.02)
- 仓库管理实战课程(8)-商品信息功...(04.01)
- 仓库管理实战课程(7)-链接表(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)
- 仓库管理实战课程(5)-字段属性(03.27)
- 设备装配出入库管理系统;基于Acc...(03.24)
- 仓库管理实战课程(4)-建表操作(03.22)
- 仓库管理实战课程(3)-需求设计说...(03.19)
- 仓库管理实战课程(2)-软件背景和...(03.18)
- 仓库管理实战课程(1)-讲师介绍(03.16)