Статистические функции используются в запросах главным образом для вычисления всевозможных итоговых значений, например для числового поля, можно вычислить среднее значение или сумму значений для всех или отобранных записей, можно посчитать количество записей, возвращаемых запросом и т.д. В отличие от запросов с применением вычисляемых полей, здесь вычисления проводятся внутри одного столбца («по вертикали»). Примеры функций приведены в таблице 2.1
Таблица 2.1 Примеры статистических функций
Функция | Типы полей | Описание |
Avg | Все типы полей, исключая Текстовый, поле МЕМО, Поле объектов OLE. | Вычисляет среднее арифметическое значение чисел, содержащихся в указанном поле таблицы. |
Count | Все типы полей | Вычисляет количество непустых записей в поле. |
Sum | Все типы полей, исключая Текстовый, поле МЕМО, Поле объектов OLE. | Вычисляет сумму набора чисел, содержащихся в поле. |
Min | Все типы полей, исключая Текстовый, поле МЕМО, Поле объектов OLE. | Находит минимальное из указанных в поле чисел. |
Max | Все типы полей, исключая Текстовый, поле МЕМО, Поле объектов OLE. | Находит максимальное из указанных в поле чисел. |
Для создания запроса с использованием групповых операций формируется запрос на выборку. В бланк запроса включаются поля, по которым надо произвести группировку, и поля, по которым надо произвести статистические вычисления. Затем курсор помещается в нижнюю часть конструктора запросов. Вызывается контекстное меню, и выбирается в нем пункт Групповые операции. В бланке запроса появляется строка Групповая Операция, в которой для всех полей записано «Группировка» (Рис. 2.40).
Рис. 2.40 Вызов строки «Групповые операции» в конструкторе запросов
Для того чтобы выполнить вычисления в группе по некоторому полю, нужно заменить в нем слово «Группировка» на статистическую функцию. Выбрать необходимую функцию можно через раскрывающийся в поле список. При организации запросов с использованием групповых операций в бланк запроса надо отбирать только те поля, которые будут участвовать в вычислениях. Вычисления могут проводиться: на всем диапазоне записей; или на выделенных записях таблицы.
Имеется таблица 2.2, содержащая сведения о студентах:
Таблица 2.2 Сведения о студентах
фамилия | имя | отчество | дата рождения | курс | группа | семестр |
Андреев | Алексей | Алексеевич | 16.03.1988 | а | ||
Андреев | Анатолий | Сергеевич | 26.01.1989 | а | ||
Анисимов | Руслан | Владимирович | 06.03.1989 | а | ||
Баблакова | Вера | Александровна | 10.06.1989 | а | ||
Бугера | Екатерина | Александровна | 03.10.1989 | б | ||
Вестимая | Светлана | Николаевна | 17.01.1990 | б | ||
Егоров | Михаил | Владимирович | 06.06.1989 | б | ||
Бирчук | Алексей | Андреевич | 29.08.1988 | а | ||
Боровкова | Анна | Владимировна | 11.03.1989 | а |
Требуется получить сведения об общем количестве студентов. Для этого надо составить запрос (Рис. 2.41):
Рис. 2.41 Вычисления на всем диапазоне записей (по всей таблице)
В качестве поля можно взять любое поле таблицы, не содержащее пустых записей. Результатом выполнения такого запроса будет одно число, равное количеству непустых записей в выбранном поле, (т.е. количеству студентов). В приведенном примере 9.
Иногда расчеты надо проводить, разделив предварительно данные на группы (сгруппировав их). Например, подсчитать количество студентов на каждом курсе отдельно.
Для этого в запрос надо добавить на только поле, по которому будет производиться расчет, но и поле, по которому происходит группировка данных. В первом из указанных полей – выбрать нужную статистическую функцию, а во втором – оставить элемент «Группировка» (Рис. 2.42).
Рис. 2.42 Вычисления на выделенных записях (по курсам)
Аналогично можно подсчитать количество студентов в каждой группе каждого курса. Для этого надо произвести группировку данных сначала по курсу, а затем – по группе (Рис. 2.43).
Рис. 2.43 Вычисления на выделенных записях (по курсам и группам)
Подобным образом можно найти количество товаров в магазине, количество товаров по отделам, общую стоимость товаров и стоимость товаров по отделам. Можно создать запрос на нахождение минимального, максимального, среднего размера оплаты труда или стажа работы. И тому подобные запросы для различных таблиц.
Статистические функции могут применяться и для одного поля таблицы. Например, можно создать запрос, в котором будет рассчитано минимальное, максимальное, среднее значение стипендии студентов, общая сумма стипендии и общее количество студентов, получающих стипендию (Рис. 2.44). Рассмотрим таблицу 2.3, содержащую сведения о студентах:
Таблица 2.3 Сведения о студентах
фамилия | имя | отчество | дата рождения | курс | группа | семестр | … | стипендия |
Андреев | Алексей | Алексеевич | 16.03.1988 | а | ||||
Андреев | Анатолий | Сергеевич | 26.01.1989 | а | ||||
Анисимов | Руслан | Владимирович | 06.03.1989 | а | ||||
Баблакова | Вера | Александровна | 10.06.1989 | а | ||||
Бугера | Екатерина | Александровна | 03.10.1989 | б | ||||
Вестимая | Светлана | Николаевна | 17.01.1990 | б | ||||
Егоров | Михаил | Владимирович | 06.06.1989 | б | ||||
Бирчук | Алексей | Андреевич | 29.08.1988 | а | ||||
Боровкова | Анна | Владимировна | 11.03.1989 | а |
Рис. 2.44 Применение групповых операций для одного поля таблицы
Помимо статистических функций, групповые операции содержат элементы: Группировка, Условие, Выражение. Элемент Группировка – применяется для создания групп данных.
Иногда в итоговые запросы необходимо ввести условие отбора. В этом случае в нужном поле вместо элемента «Группировка» выбирают элемент «Условие» и задать необходимые условия. При этом в поле, в котором введено условие, автоматически сбрасывается флажок «Вывод на экран», т.е. данное поле на экране не отображается (Рис. 2.45).
Например: найти количество студентов 4 курса группы «а»:
Рис. 2.45 Применение условий в групповых операциях
Если в итоговых запросах надо создать математическое выражение, то вместо групповых операций в нужном поле надо выбрать элемент «Выражение».