3.4 数据统计与汇总

在VFP中,我们可以对表中相应的记录进行统计,对数值型数据还可以进行求和、求平均值以及分类汇总等计算。

3.4.1 数据统计

1.计数命令

【命令格式】 COUNT [范围][FOR/WHILE<条件>] [TO <内存变量>]

【功能】 统计满足条件的记录数。

【例3.8】 分别统计TEACHER表中男、女教工人数。

USE TEACHER
COUNT FOR 性别="男" TO MEN
COUNT FOR 性别="女" TO WOMEN
?"男教工人数为:",MEN
?"女教工人数为:" ,WOMEN
?"男女教工人数为:",MEN+WOMEN

显示结果如下:

2.求和命令

【命令格式】 SUM [数值型表达式表][范围][FOR/WHILE <条件>][TO <内存变量表>]

【功能】 对当前表中的数值型字段的表达式求和。

【例3.9】 对TEACHER表中的月收入求和。

USE TEACHER
SUM 月收入

3.求平均数命令

【命令格式】 AVERAGE [数值型表达式表][范围][FOR/WHILE <条件>][TO <内存变量表>]

【功能】 对当前表中的数值型字段的表达式求平均数。

【例3.10】 对TEACHER表中的月收入求平均数。

USE TEACHER
AVERAGE 月收入

4.计算命令

【命令格式】 CALCULATE <表达式表> [范围][FOR/WHILE <条件>][TO <内存变量表>]

【功能】 计算表达式的值。

【说明】 表达式表中的函数有计数函数CNT()、求和函数SUM(<数值型表达式>)、求平均数函数AVG(<数值型表达式>)、最大值函数MAX(<表达式>)、最小值函数MIN

(<表达式>)、净现值函数NPV(<数值型表达式>)和标准差函数STD(<数值型表达式>)等系统函数。

【例 3.11】 计算TEACHER表的月收入平均数、合计数、最大值、最小值,并统计记录个数。

USE TEACHER
CALCULATE AVG(月收入),SUM(月收入),CNT(),MAX(月收入),MIN(月收入)

结果显示如下:

3.4.2 数据汇总

数据表的汇总又称同类项合并、分类求和等,它可以按照关键字值的不同来对数值型字段进行分类求和。

【命令格式】 TOTAL TO <文件名> ON <关键字> [范围][FIELDS <N型字段名表>] [FOR/WHILE<条件>]

【功能】 在当前表中,对关键字相同的记录的数值型字段求和,并将结果存入一个新表。

【说明】 在分组求和之前须按分组关键字段建立索引。

【例3.12】 对TEACHER表按教研室分组求和,将分组求和结果放在TEMP中。

USE TEACHER
INDEX ON 教研室 TO CTEACHER
TOTAL TO TEMP ON 教研室
USE TEMP
LIST

显示结果如下: