精通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)
- 【Access选项卡示例】Ac...(09.09)
- 【Access源码示例】按输入...(09.02)
- 【Access日期区间段查询】...(08.29)
- 【Access日期区间段查询】...(08.27)
- Access怎样才能实现日期时...(08.21)
- 【Access定时打开查询】A...(08.19)
- Access生成固定数量的记录...(08.13)
- Access怎样才能实现日期时...(08.12)
- Access利用导航窗体控件对...(08.03)
学习心得
最新文章
- Access自定义函数命名为中文名...(09.20)
- Access表中的字段名、字段标题...(09.19)
- Access快速开发平台--更改“...(09.18)
- 【中秋及国庆优惠】Access培训...(09.15)
- Access如何将日期型的数值转换...(09.14)
- 英文输入法输入数据中存在单引号引起...(09.11)
- 【Access选项卡示例】Acce...(09.09)
- 让Access光标停留在指定的控件...(09.07)
- 关于Access查询条件里使用通配...(09.06)
- Access报表偷懒制作法--Ac...(09.05)