Вычисляет среднее арифметическое числовых выражений или значений из полей таблицы.

AVERAGE [ExpressionList] [Scope] [FOR lExpression1] [WHILElExpression2]
[TO VarList | TO ARRAY ArrayName] [NOOPTIMIZE]

Параметры

ExpressionList

Указывает выражения для нахождения среднего значения. ExpressionList может быть списком полей таблицы, разделенных запятыми или числовых выражений, содержащих имена полей таблицы.
Scope
Указывает запись или диапазон записей для нахождения среднего значения. В вычислении среднего будут участвовать только записи, находящиеся внутри указанного диапазона. Допускается указывать диапазон в виде ALL, NEXT nRecords, RECORD nRecordNumber и REST. По умолчанию принимается диапазон ALL. Команды, которые включают Scope, относятся только к таблице, открытой в текущей рабочей области.
FOR lExpression1

Указывает условие, в соответствии с которым в расчет принимаются только записи, для которых истинно логическое выражение lExpression. Эта опция позволяет вам отфильтровать ненужные записи. Если условие lExpression является оптимизируемым выражением, к команде AVERAGE FOR применима оптимизация запросов Rushmore. Для достижения лучшей производительности используйте оптимизируемые выражения в опции FOR. Для получения дальнейших сведений об оптимизируемых выражениях Rushmore обращайтесь к темам Команда SET OPTIMIZE и Использование оптимизации запросов Rushmore для ускорения доступа к данным.
WHILE lExpression2

Указывает, что записи будут включаться в вычисление среднего значения только до тех пор, пока логическое выражение lExpression2 остается истинным (.T.).
TO VarList

Указывает список переменных или элементов массива, в которых запоминаются вычисленные значения среднего.
TO ARRAY ArrayName

Указывает одномерный массив, в котором будут сохранены вычисленные значения среднего. Одномерный массив может быть создан до выполнения команды AVERAGE. Если массив, имя которого вы указали в команде AVERAGE не существует, Visual FoxPro создаст его автоматически. Если массив существует и его размер недостаточен для размещения всех результатов, Visual FoxPro автоматически увеличит размер массива с тем, чтобы разместить всю необходимую информацию.
NOOPTIMIZE

Отключает оптимизацию Rushmore для команды AVERAGE. Для получения дальнейших сведений обратитесь к темам Команда SET OPTIMIZE и Использование оптимизации запросов Rushmore для ускорения доступа к данным.

Примечания

Если вы не укажете необязательный список выражений, средние значения будут вычислены по всем полям выбранной таблицы. Результаты отображаются на экране если установка SET TALK находится в ON. Если установка SET HEADINGS находится в ON, строке с результатами будет предшествовать строка с именами полей или выражений, содержащих имена полей.

Пример

  Скопировать код
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE orders && Open order table

CLEAR
AVERAGE Order_Amt && Calcuate averages of all orders
AVERAGE Order_Amt TO gnAvg && Store average to memory variable
? 'Average order amount: '
?? gnAvg && Display the average again

Смотрите также