(二)统计查询句法4:Select 查询表达式 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平均值,可用于数字型
句法5:Select 查询表达式 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分的班级。 |