Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: 不看不看

用老师的ADO简明教程

  [复制链接]
 楼主| 发表于 2008-12-16 13:20 | 显示全部楼层

(二)统计查询

句法4Select 查询表达式 From 数据区域 [Where 条件表达式] Group by 分组表达式[Order by 排序字段]

请粘贴下面的过程:

Sub Ado5()

  Dim cnn As New ADODB.Connection

  Dim Sql As String

  cnn.Open "Provider=Microsoft.Jet.OleDb.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName

'统计各班的人数和平均分

  Sql = "Select 班级,count(*),avg(语文) from [一年级$] group by 班级"

  Sheet7.Cells.Clear

  Sheet7.[a2].CopyFromRecordset cnn.Execute(Sql)

  cnn.Close

  Set cnn = Nothing

End Sub

上面的统计查询语句使用了Group by子句。在统计查询中,查询表达式中没有使用聚合函数的字段必须在分组表达式中出现,但分组表达式中的字段可以不在查询表达式中出现。以上面的查询语句:

Select 班级,count(*),avg(语文) from [一年级$] group by 班级

在查询表达式中,“班级”不是以聚合函数的方式出现的,则Group by后面的分组表达式必须出现它。下面语句是错误的,因为分组字段没有“性别”:

Select 班级,性别,count(*),avg(语文) from [一年级$] group by 班级

但下面语句是允许的:

Select count(*),avg(语文) from [一年级$] group by 班级

Select 班级,性别,count(*),avg(语文) from [一年级$] group by 班级,性别

 

聚合函数

聚合函数常与group by子句一起使用,用于对查询结果集合中的多个值进行统计计算,并返回单个计算结果,但聚合函数不能用在Where子句中。在聚合函数中允许使用DISTINCT关键字。常用的聚合函数有:

COUNT  统计项数,可以是任何类型的表达式,允许使用星号表达

MIN 最小值,可用于数字型、文本型、日期型

MAX最大值,可用于数字型、文本型、日期型

 

SUM 和值,可用于数字型

AVG平均值,可用于数字型

 

句法5Select 查询表达式 From 数据区域 [Where 条件表达式] Group by 分组表达式Having [Order by 排序字段]

在使用group by子句时,可用Having子句为分组统计进一步设置统计条件。

Having子句和Group by子句的关系相当于Where子句和Select子句的关系。

  Sql = "Select 班级,count(*),avg(语文) from [一年级$] group by 班级 having avg(语文)>75"

上面语句只统计语文平均分大于75分的班级。

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2008-12-16 14:49 | 显示全部楼层
回复

使用道具 举报

发表于 2008-12-16 15:04 | 显示全部楼层

好贴!学习!

 

[em27][em27][em27][em27]
回复

使用道具 举报

发表于 2008-12-16 15:19 | 显示全部楼层

看不懂啊

回复

使用道具 举报

发表于 2011-3-7 13:54 | 显示全部楼层
{:011:}{:011:}
回复

使用道具 举报

发表于 2011-3-8 03:03 | 显示全部楼层
{:051:}神贴啊。
回复

使用道具 举报

发表于 2011-3-8 17:06 | 显示全部楼层
回复 liuguansky 的帖子

呵呵{:091:}
回复

使用道具 举报

发表于 2011-3-8 17:54 | 显示全部楼层
回复 mn860429 的帖子

神卡啊。{:211:}
回复

使用道具 举报

发表于 2011-3-8 17:57 | 显示全部楼层
回复 liuguansky 的帖子

刚仔细看了下,这贴超强的啊{:221:}
回复

使用道具 举报

发表于 2011-3-8 18:02 | 显示全部楼层
mn860429 发表于 2011-3-8 17:57
回复 liuguansky 的帖子

刚仔细看了下,这贴超强的啊

给半部分的资料有没有。联合查询,多表查询{:191:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 15:20 , Processed in 0.432313 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表