精通MS-ACCESS SQL之基础篇(07)-Big Young
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-查询/SQL语句


精通MS-ACCESS SQL之基础篇(07)

发表时间:2017/11/17 17:12:09 评论(26) 浏览(6272)  评论 | 加入收藏 | 复制
   
摘 要:  ACCESS SQL 的 GROUP BY 的用法。
正 文:

第七节 对查询记录进行分组统计

对于通过调查得到的数据,虽然经过审核、排序等整理手段给予了处理,但由于数据庞杂,还不能直接进入对数据的分析阶段。在此之前,有必要对数据进行分组处理,以反映数据分布的特征及规律。从一定意义上说,数据整理的中心任务就是分组和编制频数分布。

数据分组是根据统计研究的需要,将原始数据按照某种标准划分成不同的组别,分组后的数据称为分组数据。数据分组的主要目的是观察数据的分布特征。数据分组后再计算出各组中数据出现的的频数,就形成了一张频数分布表。

对于非数值型数据就是依据属性的不同将其划分为若干组,对于数值型数据就是依据数值的不同将数据划分为若干组。在社会经济统计研究中,数据分组的作用在于:划分现象的类型、研究总体的结构与现象之间的依存关系。

ACCESS SQL中分组是通过“GROUP BY”子句来实现的。

一、“GROUP BY”的一般语法

在查询中,“GROUP BY”子句使用频率非常高,其基本语法为:

Select 字段1, 汇总函数(字段2) FROM 表名 GROUP BY 字段1;

这里字段1”是分组要依据的字段,“字段2”是与合计函数一起要对其进行统计的字符段,表名就是与以前讲的一样是要被查询的数据库表的名称。汇总通常是与SQL的合计函数一起应用来实现汇总统计的。合计函数,又叫汇总函数或叫聚合函数,ACCESS SQL提供了“SUMAVGMAXMINCOUNT等汇总函数。

二、通过设置一个字段条件进行分组汇总

我们还是打开前面创建并使用的示例数据库“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群(群号:198465573)
 
 相关文章
精通MS-ACCESS SQL之基础篇(04)  【Big Young  2017/11/10】
精通MS-ACCESS SQL之基础篇(05)  【Big Young  2017/11/13】
精通MS-ACCESS SQL之基础篇(06)  【Big Young  2017/11/14】
精通MS-ACCESS SQL之基础篇(08)  【Big Young  2017/11/24】
精通MS-ACCESS SQL之基础篇(09)  【Big Young  2017/11/27】
精通MS-ACCESS SQL之基础篇(10)  【Big Young  2017/11/30】
常见问答
技术分类
相关资源
文章搜索
关于作者

Big Young

文章分类

文章存档

友情链接