| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4937 人关注过本帖
标题:新手求教数据统计问题,如何求最高分和平均分。
只看楼主 加入收藏
wty200800720
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2013-3-4
结帖率:33.33%
收藏
已结贴  问题点数:10 回复次数:11 
新手求教数据统计问题,如何求最高分和平均分。
图片附件: 游客没有浏览图片的权限,请 登录注册
我有一张成绩表
想显示zf的最高分,和其他各科类的平均分,VF中程序该怎么写啊。新手求大神帮忙
搜索更多相关主题的帖子: 成绩表 统计 如何 
2017-06-24 16:45
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9820
专家分:27081
注 册:2012-2-5
收藏
得分:2 
calculate 命令
对表中的字段或包含字段的表达式进行财务和统计操作。
语法

CALCULATE eExpressionList
[Scope] [FOR lExpression1] [WHILE lExpression2]
[TO MemVarList | TO ARRAY ArrayName]
[NOOPTIMIZE]

参数

eExpressionList

指定表达式,表达式可以包含下列函数的任意组合:
AVG(nExpression)
CNT( )
MAX(eExpression)
MIN(eExpression)
NPV(nExpression1, nExpression2 [, nExpression3])
STD(nExpression)
SUM(nExpression)
VAR(nExpression)
用逗号分隔表达式列表 eExpressionList 中的函数。这些函数仅用于 calculate 命令。在本段后面将详细说明这些函数。不要与有相似名称的独立函数相混淆。例如,CALCULATE MIN( ) 与 MIN( ) 不同。

Scope

指定计算中所使用记录的范围。只有在范围之内的记录才进行计算。Scope 子句有:ALL、NEXT nRecords、RECORD nRecordNumber 和 REST。有关范围子句的详细信息,请参阅 Scope 子句或《开发指南》第二章“语言概述”。包含 Scope 子句的命令只能在活动工作区内的表上操作。

FOR lExpression1

指定只有满足逻辑条件 lExpression1 的记录才进行计算。在计算中包含 FOR 子句可以有条件地选择记录,筛选出不想要的记录。若 lExpression1 是可优化的表达式,Rushmore 技术将优化CALCULATE...FOR 查询。为了获得最佳性能,应在 FOR 子句中使用可优化表达式。有关 Rushmore 可优化表达式的内容,请参阅 SET OPTIMIZE 和深入了解 Rushmore 技术,或《开发指南》第十七章“优化应用程序”。

WHILE lExpression2

指定一个条件,只要逻辑表达式 lExpression2 计算为“真”(.T.),记录就进行计算。

TO MemVarList

指定一个或多个用以存储计算结果的变量。若指定的内存变量不存在,Visual FoxPro 自动用该名称创建此内存变量。

TO ARRAY ArrayName

指定存储计算结果的数组。若指定的数组不存在,Visual FoxPro 自动用该名称创建此数组。若该数组存在,但容纳不下所有的计算结果,Visual FoxPro 自动增大数组以容纳信息。若数组比需要的大,多余元素的内容保持不变。计算结果按照 calculate 命令指定的顺序保存到数组中。

NOOPTIMIZE

关闭 CALCULATE 的 Rushmore 优化。有关详细内容,请参阅 SET OPTIMIZE 和深入了解 Rushmore 技术 ,或《开发指南》第十七章“优化应用程序”。

AVG(nExpression)

计算 nExpression 的算术平均值。只有满足 Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

CNT( )

返回表中记录的数目。只有满足 Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

MAX(eExpression)

返回 eExpression 的最大值或最新值。在 MAX( ) 子句中可指定任何字符型、日期型、日期时间型、数值型、浮点型、整型、双精度型或货币型字段,或包含这些类型字段的表达式。只有满足 Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

MIN(eExpression)

返回 eExpression 的最小值或最早值。eExpression 中可包括任何字符型、日期型、日期时间型、数值型、浮点型、整型、双精度型或货币型字段,或任何使用这些类型字段的有效表达式。只有满足Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

NPV(nExpression1, nExpression2 [, nExpression3])

计算一个固定周期利率下,一系列现金流的净现值。
nExpression1 指定用十进制表示的利率。
nExpression2 指定代表一系列现金流的字段、字段表达式或数值表达式。每个现金流可正可负。当 nExpression2 是字段时,每个记录的字段值都认为是一个现金流。
nExpression3 指定可选的初始投资。如果不包括初始投资,则假定初始投资发生在第一阶段末。这个初始投资就是第一个记录,而且是负的,代表现金流出。
只有满足 Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

STD(nExpression)

计算 nExpression 的标准偏差。标准偏差用来衡量字段或包含字段的表达式的值偏离平均值的程度。标准偏差越小,这些值偏离平均值就越少。只有满足 Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

SUM(nExpression)

对 nExpression 的值求和。只有满足 Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

VAR(nExpression)

从 nExpression 的平均值中计算方差。方差是标准偏差的平方。方差越小,值偏离平均值就越少。只有满足 Scope 和/或可选的 FOR 或 WHILE 条件的记录才包括到结果中。

说明
含有 Null 值的记录不包含在 CALCULATE 的操作中。

坚守VFP最后的阵地
2017-06-24 17:14
wty200800720
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2013-3-4
收藏
得分:0 
回复 2楼 sdta
大神,我是新手不怎么会。。。。
2017-06-24 23:32
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1586
专家分:3094
注 册:2012-2-29
收藏
得分:2 
select max(zf) as max_zf,avg(学科) as 学科,……  from 数据表 into table 新数据表。
如:SELECT MAX(zf) as max_zf,AVG(yw) as yw,AVG(sx) as sx,AVG(wy) as yy FROM spcjk INTO TABLE tj
2017-06-25 07:13
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9820
专家分:27081
注 册:2012-2-5
收藏
得分:0 
以下是引用wty200800720在2017-6-24 23:32:36的发言:

大神,我是新手不怎么会。。。。

不会就要从基础开始学

坚守VFP最后的阵地
2017-06-25 10:09
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:2 
回复 楼主 wty200800720
SELECT MAX(ZF) AS 最高总分, AVG(YW) AS 语文平均, AVG(SX) AS 数学平均, ... FROM 表文件名


[此贴子已经被作者于2017-6-25 13:56编辑过]

2017-06-25 13:52
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
收藏
得分:2 
SELECT MAX(ZF) AS 最高总分, AVG(YW) AS 语文平均, AVG(SX) AS 数学平均, ... FROM 表文件名
好像这样求出来的平均不一定对吧,楼主的表里有几条无效记录,各科都是0分。
2017-06-25 23:51
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:2 
回复 3楼 wty200800720
2楼说的对,这个是VFP的内部统计命令。你认真看2楼就可以了。
至于 select 是SQL的统计方式,建议你先不看他。
2017-06-26 08:42
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
select max(语文) as 语文最高,min(语文) as 语文最低,avg(语文) as 语文平均,;
       max(数学) as 数学最高,min(数学) as 数学最低,avg(数学) as 数学平均,;
       max(英语) as 英语最高,min(英语) as 英语最低,avg(英语) as 英语平均 ;
from 成绩表  into array 成绩统计

* 上面的列子,是用SQL统计的方法,统计“成绩表”的语文,数学,英文的最最高,最低,平均分,到数组去,其中
成绩统计[1] &&是语文最高分,
成绩统计[2] &&是语文最低分,
成绩统计[3] &&是语文平均分,

成绩统计[4] &&是数学最高分,
成绩统计[5] &&是数学最低分,
成绩统计[6] &&是数学平均分,

成绩统计[7] &&是英语最高分,
成绩统计[8] &&是英语最低分,
成绩统计[9] &&是英语平均分,






2017-06-26 08:50
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9820
专家分:27081
注 册:2012-2-5
收藏
得分:0 
最低成绩基本上都是0,还用统计吗

坚守VFP最后的阵地
2017-06-26 09:00
快速回复:新手求教数据统计问题,如何求最高分和平均分。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035134 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved