Cómo utilizar VFP6.0 para análisis estadístico, principalmente suma o promedio de clasificación. Los datos más grandes son alrededor de 600.000 artículos.
Suma el campo numérico especificado o todos los campos numéricos de la tabla seleccionada actualmente.
SUM [eExpressionList] [Alcance] [FOR lExpression1] [WHILE lExpression2]
[TO MemVarNameList | TO ARRAY ArrayName] [NOOPTIMIZE]
Parámetros p>
p>
eExpressionList
Especifica uno o más campos o expresiones de campo que se sumarán. Si se omite la lista de expresiones de campo, se suman todos los campos numéricos.
Alcance
Especifica el rango de registros que se totalizarán. Las cláusulas de alcance son: ALL, NEXT nRecords, RECORD nRecordnumber y REST. Para obtener más información sobre las cláusulas de alcance, consulte el tema en línea Cláusulas de alcance o descripción general del lenguaje.
El alcance predeterminado de SUM es todos los registros (TODOS).
FOR lExpression1
Especifica que solo se totalizarán los registros con un valor de "verdadero" (.T.) para la condición lógica lExpression1. Incluir una cláusula FOR le permite totalizar registros condicionalmente y filtrar registros no deseados.
Si lExpression1 es una expresión optimizable, Rushmore puede optimizar el comando SUM... FOR. Para obtener el mejor rendimiento, utilice expresiones optimizables en la cláusula FOR.
Para obtener más información sobre la optimización de Rushmore, consulte SET OPTIMIZE y Optimización de la velocidad de acceso a datos con Rushmore Queries.
WHILE lExpression2
Especifica una condición para totalizar solo los registros de la tabla actual para los cuales la expresión lógica lExpression2 es "verdadera" (.T.).
TO MemVarNameList
Almacena cada valor total en una variable de memoria. Si la variable de memoria especificada en MemVarNameList no existe, Visual FoxPro crea automáticamente una lista de nombres de variables de memoria separados por comas.
TO ARRAY ArrayName
Almacena el valor total en la matriz de variables de memoria. Si la matriz especificada en el comando de suma no existe, Visual FoxPro la crea automáticamente si la matriz existe pero; es demasiado pequeño y no puede contener todos los valores totales, entonces el tamaño de la matriz aumenta automáticamente para almacenar los valores totales.
NOOPTIMIZE
Desactiva la optimización Rushmore de SUM.
Para obtener más información, consulte SET OPTIMIZE y Optimización de la velocidad de acceso a datos con Rushmore Queries.
Ejemplo
El siguiente ejemplo muestra los totales para el campo en stock y el campo en pedido en la tabla de productos, así como la suma de estos dos totales.
CERRAR BASES DE DATOS
ABRIR BASE DE DATOS (HOME(2) + 'data\testdata')
USE productos && Tabla de productos abiertos
SUM in_stock, on_order, in_stock+on_order ;
TO gnInStock, gnOnOrder, gnUnits
CLEAR 'Recuento total de existencias: ', gnInStock && muestra 3119.00 'Recuento total de pedidos: ', gnOnOrder && muestra 780,00 'Unidades totales: ', gnUnits && muestra 3899,00
Calcula la media aritmética de una expresión o campo numérico.
PROMEDIO [ListaExpresiones] [Alcance] [PAR lExpresión1] [WHILElExpresión2]
[TO ListaVar | TO ARRAY NombreArray] [NOOPTIMIZE]
Parámetros
ExpressionList
Especifica la expresión para promediar. ExpressionList puede ser una lista delimitada por comas de campos de tabla o una expresión numérica que contiene campos de tabla.
Alcance
Especifique los registros o rango de registros a promediar. Sólo los registros dentro del rango especificado participan en la operación de promedio. La cláusula de alcance puede ser: TODOS, NEXT nRecords, RECORD nRecordNumber y REST. El ámbito predeterminado es todos los registros.
Los comandos que contienen una cláusula de alcance solo procesan tablas en el espacio de trabajo activo.
FOR lExpression1
Especifica que solo los registros que cumplan la condición lógica lExpression1 participarán en el cálculo. Esto filtrará los registros no deseados.
Si lExpression es una expresión optimizable, la tecnología Rushmore optimizará la consulta AVERAG FOR. Para obtener el mejor rendimiento, utilice expresiones optimizables en la cláusula FOR. Para obtener más información sobre las expresiones que Rushmore puede optimizar, consulte SET OPTIMIZE y Optimización de la velocidad de acceso a datos con consultas Rushmore.
WHILE lExpression2
Especifica que el registro se evalúa siempre que la expresión lógica lExpression2 sea "verdadera" (.T.). Hasta que se encuentre el primero que haga que lExpression2 se evalúe como "falso" (.F.).
TO VarList
Especifica una lista de variables de memoria o elementos de matriz que contienen los resultados promedio.
TO ARRAY ArrayName
Especifica una matriz unidimensional que almacena el resultado promedio. Se pueden crear matrices unidimensionales antes de usar el comando PROMEDIO.
Si la matriz especificada no existe, Visual FoxPro la creará automáticamente. Si la matriz existe pero no es lo suficientemente grande como para contener todos los resultados, Visual FoxPro aumentará automáticamente el tamaño de la matriz según la cantidad de información.
NOOPTIMIZE
Cancela la optimización Rushmore del comando PROMEDIO. Para obtener más información, consulte CONFIGURAR OPTIMIZAR y Optimización de la velocidad de acceso a datos con consultas Rushmore.
Nota
A menos que se incluya una lista de expresiones opcional, todos los campos de la tabla seleccionada participarán en la operación de promedio.
Si SET TALK está activado, los resultados se muestran en la pantalla. Si SET HEADINGS está activado, los nombres de campo o las expresiones que incluyen nombres de campo aparecen encima de los resultados.
Ejemplo
CERRAR BASES DE DATOS
ABRIR BASE DE DATOS (HOME(2) + 'Datos\testdata')
UTILIZAR órdenes && abrir orden Tabla
CLEAR
AVERAGE Order_Amt && Calcula el promedio de todos los pedidos
AVERAGE Order_Amt TO gnAvg && Guarda el promedio en la variable de memoria 'Cantidad promedio de pedido: '
gnAvg && muestra el promedio nuevamente