Как в аксесс найти среднюю

В этой статье описано, как подсчитать данные, возвращаемые запросом. Например, в форме или отчете можно подсчитать количество элементов в одном или нескольких полях таблицы или элементах управления. Вы также можете вычислять средние значения, находить наибольшее и наименьшее значения, самую давнюю и самую последнюю дату. Кроме того, в Access предусмотрено средство, называемое строкой итогов, с помощью которого можно подсчитывать данные в таблице, не изменяя структуру запроса.

Выберите нужное действие

  • Способы подсчета данных

  • Подсчет данных с помощью строки итогов

  • Подсчет данных с помощью итогового запроса

  • Справочные сведения об агрегатных функциях

Способы подсчета данных

Подсчитать количество элементов в поле (столбце значений) можно с помощью функции Число. Функция Число принадлежит к ряду функций, называемых агрегатными. Агрегатные функции выполняют вычисления со столбцами данных и возвращают единственное значение. Кроме функции Число, в Access есть следующие агрегатные функции:

  • Сумма для суммирования столбцов чисел;

  • Среднее для вычисления среднего значения в столбце чисел;

  • Максимум для нахождения наибольшего значения в поле;

  • Минимум для нахождения наименьшего значения в поле;

  • Стандартное отклонение для оценки разброса значений относительно среднего значения;

  • Дисперсия для вычисления статистической дисперсии всех значений в столбце.

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

  • Открыть запрос в режиме таблицы и добавить строку итогов. Строка итогов позволяет использовать агрегатные функции в одном или нескольких столбцах в результатах запроса без необходимости изменять его структуру.

  • Создать итоговый запрос. В итоговом запросе вычисляются промежуточные итоги по группам записей. Например, если вы хотите вычислить промежуточную сумму всех продаж по городам или по кварталам, следует использовать итоговый запрос для группировки записей по нужной категории, а затем просуммировать все объемы продаж. С другой стороны, с помощью строки итогов можно вычислить общий итог для одного или нескольких столбцов (полей) данных.

Примечание: Ниже в разделах этой статьи подробно описано применение функции Сумма, однако следует помнить, что вы можете использовать другие агрегатные функции в строках итогов и запросах. Дополнительные сведения об использовании других агрегатных функций см. ниже в разделе Справочные сведения об агрегатных функциях.

Дополнительные сведения о способах использования других агрегатных функций см. в разделе Отображение итогов по столбцу в таблице.

В следующих разделах описаны шаги, которые следует выполнить, чтобы добавить строку итогов, а также описывается использование итогового запроса для подсчета данных. Следует обратить внимание на то, что функция Число работает с большим числом типов данных, чем другие агрегатные функции. Функцию Число можно использовать для любого типа полей, кроме тех, которые содержат сложные повторяющиеся скалярные данные, например поле с многозначными списками.

С другой стороны, многие агрегатные функции работают только с данными в полях, имеющих определенный тип данных. Например, функция Сумма работает только с типами данных “Число”, “Действительное” и “Денежный”. Дополнительные сведения о типах данных, требуемых для каждой функции, см. ниже в разделе Справочные сведения об агрегатных функциях.

Общие сведения о типах данных см. в статье Изменение типа данных для поля.

К началу страницы

Подсчет данных с помощью строки итогов

Чтобы добавить в запрос строку итогов, откройте его в режиме таблицы, добавьте строку, а затем выберите функцию Число или другую агрегатную функцию, например Сумма, Минимум, Максимум или Среднее. В этом разделе объясняется, как создать простой запрос на выборку и добавить строку итогов.

Создание простого запроса на выборку

  1. На вкладке Создать в группе Другое нажмите кнопку Конструктор запросов.

    Изображение ленты Access

  2. Дважды щелкните таблицу или таблицы, которые вы хотите использовать в запросе, а затем нажмите кнопку “Закрыть”.

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

    Запрос с тремя полями в бланке

  3. Дважды щелкните поля таблицы, которые вы хотите использовать в запросе.

    Вы можете включить поля, содержащие описательные данные, например имена и описания, но следует обязательно добавить поле, содержащее подсчитываемые значения.

    Каждое поле отображается в столбце в бланке запроса.

  4. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

    Результаты запроса отображаются в режиме таблицы.

  5. При необходимости переключитесь в Конструктор и скорректируйте запрос. Для этого щелкните правой кнопкой мыши вкладку документа для запроса и выберите команду Конструктор. После этого можно изменить запрос, добавив или удалив поля таблицы. Чтобы удалить поле, выберите столбец в бланке запроса и нажмите клавишу DELETE.

  6. При необходимости вы можете сохранить запрос.

Добавление строки итогов

  1. Откройте запрос в режиме таблицы. Если база данных имеет формат ACCDB, щелкните правой кнопкой мыши вкладку документа для запроса и выберите команду Режим таблицы.

    -или-

    Если используется база данных в формате MDB, созданная в более ранней версии Access, на вкладке Главная в группе Режимы щелкните стрелку под кнопкой Режим и выберите значение Режим таблицы.

    -или-

    Дважды щелкните запрос в области навигации. Запрос будет выполнен, а его результаты будут загружены в таблицу.

  2. На вкладке Главная в группе Записи нажмите кнопку Итоги.

    Изображение ленты Access

    Под последней строкой данных в таблице появится новая строка Итог.

  3. В строке Итог щелкните поле, по которому вы хотите выполнить подсчет, и выберите в списке функцию Count.

Скрытие строки итогов

  • На вкладке Главная в группе Записи нажмите кнопку Итоги.

Дополнительные сведения об использовании строки итогов см. в разделе Отображение итогов по столбцу в таблице.

К началу страницы

Подсчет данных с помощью итогового запроса

Когда нужно подсчитать некоторые или все записи, возвращаемые запросом, то вместо строки итогов можно воспользоваться итоговым запросом. Например, вы можете подсчитать общее число сделок или число сделок в отдельном городе.

Как правило, итоговый запрос применяется вместо строки итогов тогда, когда требуется использовать значение результата в другой части базы данных, например в отчете.

Подсчет всех записей в запросе

  1. На вкладке Создать в группе Другое нажмите кнопку Конструктор запросов.

    Изображение ленты Access

  2. Дважды щелкните таблицу, которую вы хотите использовать в запросе, и нажмите кнопку “Закрыть”.

    Таблица появится в окне в верхней части конструктора запросов.

  3. Дважды щелкните поля, которые вы хотите использовать в запросе, и убедитесь, что включено поле, количество в которое нужно подсчитать. Можно подсчитать поля большинства типов данных, за исключением полей, содержащих сложные повторяющиеся скалярные данные, такие как поле многомерных списков.

  4. На вкладке Конструктор в группе Показать или скрыть нажмите кнопку Итоги.

    В бланке появится строка Итог, а в строке для каждого поля запроса будет указано Группировка.

  5. В строке Итог щелкните поле, по которому вы хотите выполнить подсчет, и выберите в списке функцию Count.

  6. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

    Результаты запроса отображаются в режиме таблицы.

  7. При необходимости вы можете сохранить запрос.

Подсчет записей в группе или категории

  1. На вкладке Создать в группе Другое нажмите кнопку Конструктор запросов.

    Изображение ленты Access

  2. Дважды щелкните таблицу или таблицы, которые вы хотите использовать в запросе, а затем нажмите кнопку “Закрыть”.

    Таблица (или таблицы) появится в окне в верхней части конструктора запросов.

  3. Дважды щелкните поле, содержащее данные категории, а также поле, значения в котором вы хотите подсчитать. Запрос не может содержать других описательных полей.

  4. На вкладке Конструктор в группе Показать или скрыть нажмите кнопку Итоги.

    В бланке появится строка Итог, а в строке для каждого поля запроса будет указано Группировка.

  5. В строке Итог щелкните поле, по которому вы хотите выполнить подсчет, и выберите в списке функцию Count.

  6. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

    Результаты запроса отображаются в режиме таблицы.

  7. При необходимости вы можете сохранить запрос.

К началу страницы

Справочные сведения об агрегатных функциях

В следующей таблице перечислены и отписаны агрегатные функции Access, которые можно использовать в строке итогов и в запросах. Помните, что в Access предусмотрено больше агрегатных функций для запросов, чем для строки итогов. Кроме того, при работе с проектом Access (внешней базой данных Access, которая подключается к базе данных Microsoft SQL Server) можно использовать расширенный набор агрегатных функций, предоставляемый SQL Server. Дополнительные сведения о них см. в электронной документации Microsoft SQL Server.

Функция

Описание

Поддерживаемые типы данных

Сумма

Суммирует элементы в столбце. Подходит только для числовых и денежных данных.

“Число”, “Действительное”, “Денежный”

Среднее

Вычисляет среднее значение для столбца. Столбец должен содержать числовые или денежные величины или значения даты или времени. Функция игнорирует пустые значения.

“Число”, “Действительное”, “Денежный”, “Дата/время”

Число

Подсчитывает число элементов в столбце.

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

Дополнительные сведения о списках, которые могут быть многоценными, см. в руководстве по полям, которые могут быть многоценными, а также к созданию или удалите многофаентное поле.

Максимум

Возвращает элемент, имеющий наибольшее значение. Для текстовых данных наибольшим будет последнее по алфавиту значение, причем Access не учитывает регистр. Функция игнорирует пустые значения.

“Число”, “Действительное”, “Денежный”, “Дата/время”

Минимум

Возвращает элемент, имеющий наименьшее значение. Для текстовых данных наименьшим будет первое по алфавиту значение, причем Access не учитывает регистр. Функция игнорирует пустые значения.

“Число”, “Действительное”, “Денежный”, “Дата/время”

Стандартное отклонение

Показывает, насколько значения отклоняются от среднего.

Дополнительные сведения об этой функции см. в статье Отображение итогов по столбцу в таблице.

“Число”, “Действительное”, “Денежный”

Дисперсия

Вычисляет статистическую дисперсию для всех значений в столбце. Подходит только для числовых и денежных данных. Если таблица содержит менее двух строк, Access возвращает пустое значение.

Дополнительные сведения о функциях для расчета дисперсии см. в разделе Отображение итогов по столбцу в таблице.

“Число”, “Действительное”, “Денежный”

К началу страницы

Запрос с итоговыми вычислениями

Итоговые вычисления позволяют получать
информацию по группе записей, относящихся
к одному и тому же объекту. ACCESS предоставляет
специальные функции для групповых
операций. Вот некоторые из них.

SUM( поле)-вычисляет суммы всех
значений заданного поля или выражения
в группе.

AVG(поле)-вычисляет среднее
арифметическое заданного поля или
выражения для каждой группы.

MIN(поле), MAX(поле)– находят
наименьшее и наибольшее значения
заданного поля или выражения в каждой
группе.

COUNT(поле)-находит число записей
в каждой группе.

FIRST(поле), LAST(поле)– находят
первое и последнее значения заданного
поля или выражения в каждой группе.

Для создания итогового запроса в
конструкторе надо добавить строку
Групповая операция.

Задача 3.3.По каждому виду изделия
найти среднее значение цены в первом
квартале и максимальный годовой выпуск.

Для решения этой задачи нужно создать
запрос со строкой Групповая операция.
Это можно сделать, щёлкнув по кнопке ∑
или в меню, выбрав команду. Группировка
устанавливается для того поля, одинаковое
значение которого определяет группу.
В нашей задаче таким полем является
изделие с именемIzd. Для полейценав 1 квартале (с1) игодовой выпуск(God)в этой строке выберем из выпадающего
списка функцииAvg, для получения
средней цены иMax, для максимального
годового выпуска. Вид конструктора
(рис. 3.5).

Рис. 3.5

В режиме SQL для формирования групп с
одинаковым значением заданного столбца
используется предложение GROUP BY,
после которого указывается имя столбца.
В предложенииSELECTсписок должен
состоять только из столбцов, указанных
в предложенииGROUP BY, или из итоговых
функций. Другими словами, каждый столбец,
включенный в итоговый набор записей,
должен определять группу или представлять
статистическую величину, вычисляемую
для каждой группы.

SELECT izd,Avg[1с] AS [Сред цена],Max[god]
AS [Макс выпуск]

FROM Фирма

GROUP BYizd;

После выполнения запроса получим таблицу
(рис 3.6).

Рис. 3.6

Итоговые записи могут быть получены по
разным группам.

Рассмотрим другую задачу, в которой
группировка идет по другому полю(по
названию фирмы).

Задача 3.4.По каждой фирме найти
изделия с максимальным и минимальным
годовым выпуском.

Максимальный и минимальный выпуски
можно вычислить с помощью соответствующих
функций. Но найти соответствующие этим
значениям изделия можно только в
упорядоченной по годовому выпуску
таблице. При этом следует учесть, что
группировка ( предложение GROUP BY)
автоматически устанавливает сортировку
по возрастанию поля группировки, а
функцииLASTиFIRST привязаны к
расположению аргумента в исходной
таблице.

Для этой задачи создадим копию таблицы
Фирма, в которой все записи будут
упорядочены по возрастанию значений
поляGod (годовой выпуск продукции)
и сохраним ее с именемФирма1.

Используя итоговые функции FirstиLast, которые возвращают значение
полей из первой и последней записи в
каждой группе результирующего набора
записей, можно получить информацию о
максимальных (минимальных) выпусках и
соответствующих им названиях изделий.
Конструктор запроса должен быть
заполнен следующим образом (рис. 3.7).

Рис. 3.7

В режиме SQLэтот запрос выглядит
следующим образом.

SELECTfirm,Last([God]),Last([Izd]),First([God]),First([Izd])

FROMФирма1

GROUP BYFirm;

После выполнения запроса получаем
следующий результат (рис. 3.8):

Соседние файлы в папке access

  • #

    01.06.2017303.1 Кб10db2.mdb

  • #
  • #

    01.06.2017483.33 Кб16Книготорговля.accdb

  • #

    01.06.2017286.72 Кб15Книготорговля.mdb

  • #

    01.06.2017630.78 Кб34Магазины.accdb

  • #

    01.06.2017352.26 Кб11Магазины.mdb

  • #

Использование: Access 2003

У меня есть таблица с по крайней мере 250 вводами данных. Моя цель — найти среднее значение для некоторых столбцов (например, среднее значение столбца TotalNumSuverys). Простое математическое уравнение, такое как SUM/(количество суперпользователей), не работает, потому что в зависимости от конкретного столбца общее количество записей различается.

Как я могу получить среднее значение столбца?

(Я попробовал агрегат “Avg” в представлении запроса и обнаружил, что он усредняет строку, а не столбец).

Есть ли какой-нибудь SQL, который позволит сделать что-то вроде цикла ForEach?

—I “Очень новый в этом, извините!

Функция Avg() дает среднее (среднее арифметическое) только значения, отличные от Null в столбце. Или, в вашем примере, значение “Null” будет исключено как из “SUM”, так и “Number of theveryvery takers”.

Дизайнер запросов Access может сначала сбивать с толку (насколько я помню). Может быть, это будет иметь для вас больше смысла, если вы переключитесь на SQL View и введите пример с использованием этого шаблона.

. заменяя имя вашего столбца для MyColumn и имя вашей таблицы для MyTable. Затем запустите запрос (Datasheet View), чтобы узнать, что он вам дает. Затем вы можете вернуться к Design View, чтобы увидеть, как он представлен там.

Другие агрегированные функции, а не только Avg() , также игнорируют значения Null. Например, Count(MyColumn) даст вам количество строк, где MyColumn не является Null. [Если вы хотите подсчет всех строк независимо от того, содержат ли какие-либо отдельные столбцы Null, используйте Count(*) ], а Sum(MyColumn) добавит только значения, отличные от Null MyColumn.

Статистические функции используются в запросах главным образом для вычисления всевозможных итоговых значений, например для числового поля таблицы можно вычислить среднее значение или сумму значений для всех или отобранных записей, можно посчитать количество записей, возвращаемых запросом.

Статистические функции, которые можно использовать в запросах Access, входят в состав Access SQL. Описание этих функций, а также типов полей, к которым они могут быть применены, приведено в табл. 8.1.

Функция Типы полей Описание
Avg() Все типы полей, исключая Текстовый (Text), Поле Memo (Memo) и Поле объекта OLE (OLE Object). Вычисляет арифметическое среднее набора чисел, содержащихся в указанном поле запроса
Count ( ) Все типы полей Вычисляет количество непустых записей, возвращаемых запросом
First ( ) Все типы полей Возвращает значение поля из первой записи результирующего набора
Last () Все типы полей Возвращает значение поля из последней записи результирующего набора
Max() Все типы полей, исключая Текстовый, Поле Memo и Поле объекта OLE Возвращает максимальное значение из набора, содержащегося в указанном поле
Min() Все типы полей, исключая Текстовый, Поле Memo и Поле объекта OLE Возвращает минимальное значение из набора, содержащегося в указанном поле
StDev() StDevP() Все типы полей, исключая Текстовый, Поле Memo и Поле объекта OLE Возвращают смещенное и несмещенное значение среднеквадратичного отклонения, вычисляемого по набору значений, содержащихся в указанном поле
Sum( ) Все типы полей, исключая Текстовый, Поле Memo и Поле объекта OLE Возвращает сумму набора значений, содержащихся в заданном поле
Var() VarP ( ) Все типы полей, исключая Текстовый, Поле Memo и Поле объекта OLE Возвращают значение смещенной и не смещенной дисперсии, вычисляемой по набору значений, содержащихся в указанном поле

Перечисленных функций обычно достаточно для решения большинства задач. Тем не менее, при необходимости пользователь может самостоятельно написать функцию на языке VBA, которая будет выполнять сложные статистические, научные или инженерные расчеты над данными, и использовать эту функцию в запросах.

Все статистические функции Access SQL поддерживаются стандартом ANSI SQL, но не все из них поддерживаются другими СУБД. Например, не все серверные базы данных поддерживают функции StDev(), StDevP(), Var () и VarP (). Поэтому, если вы планируете в дальнейшем перенести свою базу данных на сервер, прежде чем использовать эти функции, нужно убедиться, поддерживаются ли они сервером. Иначе потом придется изменять все объекты, в которых встречаются эти функции.

Использование статистических функций для расчета итоговых значений тесно связано с применением групповых операций в запросе. Групповые операции позволяют задать группы, для которых выполняются вычисления. Ниже мы приведем примеры таких расчетов как на всем множестве записей, так и на подмножествах, выбранных по условиям запроса.

1920 просмотра

1 ответ

3 Репутация автора

Я пытался вставить данные о среднем чистом доходе, которые я получил, в отчет, но я не могу понять, как это сделать, не размещая данные во всех других строках, как на рисунке. Я просто хочу разместить отдельные тексты в подчеркнутых прямоугольниках, чтобы все они не говорили одно и то же.

Ответы (1)

плюса

1171 Репутация автора

Если значение чистого дохода доступно в вашем базовом наборе данных, и вы используете группировку для получения строки Housing Community, вы можете использовать =AVG([NetIncome]) источник контроля в текстовом поле среднего чистого дохода.

Если информация о чистом доходе недоступна в наборе данных отчета, и вы не хотите добавлять ее, вы можете использовать функцию DAvg в источнике управления текстового поля среднего чистого дохода:

Более эффективно будет получать данные о чистой прибыли в набор данных отчета. Функция DAvg будет работать плохо, так как объем сообщаемых данных увеличивается.

To get the average for each fieldname, just do this in a query:

SELECT FieldName, Avg(FieldNum) as AvgQty
FROM MyTable
GROUP BY FieldName
ORDER BY FieldName

This will also sort the fieldname column for you.

EDIT:
I think you can do what you asked for in your comment, but you will need a separate query based on the one above. You’ll need a UNION query to do it. Something like:

SELECT Top 1 FieldName, AvgQty
FROM Query1
ORDER BY AvgQty ASC

UNION ALL

SELECT Top 1 FieldName, AvgQty
FROM Query1
ORDER BY AvgQty DESC

I’m doing that off the top of my head, so it may not be perfect.

As for formatting the field, do a google on “VBA Format Number” and you should be able to find some examples. I think it might make the above query look something like:

SELECT Top 1 FieldName, Format(AvgQty, "##.#") as AvgQty1
FROM Query1
ORDER BY AvgQty ASC

UNION ALL

SELECT Top 1 FieldName, Format(AvgQty, "##.#") as AvgQty1
FROM Query1
ORDER BY AvgQty DESC

Построение запроса начинается стандартно, нужно только выбрать пункт Конструктор запросов на вкладке Создание, а затем добавить нужную таблицу. В данном примере мы будем считать средний балл для всех студентов. Для этого нужно добавить как минимум два поля в будущую таблицу: № группы и Проходной балл. Выбор полей осуществляется двойным щелчком.

Затем нужно отобразить строку групповых операций нажатием на кнопку Итоги на верхней панели. Соответствующая строка появится в рабочем поле. В поле № группы мы оставим пункт Группировка, который устанавливается по умолчанию. В поле Проходной балл для подсчета среднего значения нужно выбрать функцию Avg. Данное сокращение от английского слова «average» означает «среднее значение». Проверить выполнение запроса можно нажатием на кнопку Выполнить. В итоговой таблице отображается средний балл студентов из разных групп.

Чтобы изменить рабочее название второго столбца, вернемся в режим конструктора. Правым щелчком по полю Проходной балл мы вызовем контекстное меню, в котором нужно выбрать пункт Свойства. В Окне свойств, появившемся справа, нужно заменить подпись любым произвольным текстом. Проверить результат данных преобразований можно, выполнив запрос еще раз.

← Назад в раздел

01:51

 (Голосов: 2, Рейтинг: 5)

Ссылка:

Код:

  • Карепрост (Careprost) — средство для роста ресниц карепрост купить по низкой цене с доставкой.

    careprost-shop.ru

Запросы позволяют не только выбирать записи из таблиц, но и вычислять различные статистические параметры. Например, можно подсчитать суммарное количество контактов и вывести даты первого и последнего контакта с каждым из людей, включенных в таблицу Контакты. Чтобы построить такой запрос в режиме конструктора, выполните следующие действия.

  1. В окне базы данных щелкните на кнопке Запросы.
  2. Дважды щелкните на значке Создание запроса в режиме конструктора (Create Query In Design View).
  3. В открывшемся окне диалога (рис. 17.6) выделите строку Контакты.
  4. 4. Щелчком на кнопке Добавить добавьте выбранную таблицу в верхнюю область конструктора запроса.
  5. 5. Выделите пункт Список и снова щелкните на кнопке Добавить.
  6. 6. Щелчком на кнопке Закрыть закройте окно диалога Добавление таблицы (Show Table). Списки полей двух таблиц, соединенные линией связи, появятся в окне конструктора.
  7. 7. Щелкните на кнопке Групповые операции (Totals) панели инструментов. В бланке запроса появится дополнительная строка Групповая операция: (Total), позволяющая выполнять статистические операции со значениями конкретных полей.

Рис. 17.6. Добавление таблицы

  1. Перетащите поле Фамилия в ячейку Поле (Field) первого столбца конструктора.
  2. В ту же ячейку второго столбца перетащите поле Имя таблицы Контакты.
  3. В третий, четвертый и пятый столбцы бланка запроса перетащите поле Дата таблицы Список (рис. 17.7).

Рис. 17.7. Запрос с групповыми операциями

  1. В раскрывающемся списке ячейки Групповая операция (Total) третьего столб ца бланка запроса выберите пункт Min.
  2. В той же ячейке четвертого столбца выберите пункт Мах.
  3. В пятом столбце задайте групповую операцию Count. Групповые операции построенного запроса обработают все записи таблицы Список, соответствующие конкретному человеку из таблицы Контакты, и вместо самих данных таблицы Список выведут в соответствующее поле результата запроса только значение величины, вычисляемой по определенной формуле. Доступные групповые операции перечислены в табл. 17.1.
Название Функция
Условие(Where) Режим задания условия отбора для поля, но которому не выполняется группировка. Access автоматически делает такое поле скрытым
Выражение (Expression) Вычисляемое поле, значение которого рассчитывается по сложной формуле
Group By Поле, определяющее группу записей, по которой вычисляются статистические параметры. К одной группе относятся все записи, для которых значения поля с режимом Group By (Группировка) одинаковы
Last Последнее значение в группе
First Первое значение в группе
Var Вариация значений поля
StDev Стандартное отклонение величин ноля от среднего
Count Количество записей, соответствующее ноле которых не содержит величины Null
Мах Максимальное значение
Min Минимальное значение
Avg Среднее значение поля
Sum Сумма значений поля по всем записям

ТАБЛИЦА 17.1 . Групповые операции

Примечание

Поскольку в пятом поле запроса вычисляется количество записей, в ячейку Поле этого столбца можно поместить любое поле таблицы Список.

  1. Щелкните на кнопке Вид, чтобы выполнить запрос. Появится таблица с пятью столбцами. Два первых столбца содержат фамилии и имена людей. По ним выполняется группировка, то есть расчет значений остальных полей запроса выполняется для записей таблицы Список, сопоставляемых с одним человеком. Как уже говорилось выше, соответствие контакта таблицы Список и человека из таблицы Контакты определяется полями Код_Контакты, с помощью которых осуществляется связь этих двух таблиц. Третий и четвертый столбцы запроса выводят соответственно дату первого (функция Min) и последнего (функция Мах) контакта с данным человеком. Пятый столбец содержит количество записей в таблице Список (функция Count), соответствующих. данному человеку, то есть число контактов с ним. Единственный недостаток построенного запроса — это непонятные имена столбцов. Давайте скорректируем их.
  2. Щелчком на кнопке Вид вернитесь в конструктор запроса.
  3. В ячейке Поле третьего столбца замените имя Дата на текст Дата первого контакта: Дата. Правая часть этого выражения, расположенная правее двоеточия, по-прежнему задает имя поля, а левая определяет название столбца результата запроса. Таким образом, любому столбцу запроса можно назначить произвольное имя.
  4. В ячейке Поле четвертого столбца введите Дата последнего контакта: Дата.
  5. В первой строке пятого столбца бланка’запроса введите Число контактов: Дата.

Примечание

К сожалению, подобный прием не подходит для смены названия поля, значение которого не вычисляется, а передается из таблицы. То есть таким способом не удастся переименовать поле Имя.

  1. Снова щелкните на кнопке Вид.
  2. Закройте запрос.
  3. Для сохранения изменений структуры щелкните на кнопке Да.
  4. В окне диалога Сохранение (Save As) введите имя Итоговый запрос и щелкните на кнопке ОК.

Запросы позволяют не только выбирать записи из таблиц, но и вычислять различные статистические параметры. Например, можно подсчитать суммарное количество контактов и вывести даты первого и последнего контакта с каждым из людей, включенных в таблицу Контакты. Чтобы построить такой запрос в режиме конструктора, выполните следующие действия.

  1. В окне базы данных щелкните на кнопке Запросы.
  2. Дважды щелкните на значке Создание запроса в режиме конструктора (Create Query In Design View).
  3. В открывшемся окне диалога (рис. 17.6) выделите строку Контакты.
  4. 4. Щелчком на кнопке Добавить добавьте выбранную таблицу в верхнюю область конструктора запроса.
  5. 5. Выделите пункт Список и снова щелкните на кнопке Добавить.
  6. 6. Щелчком на кнопке Закрыть закройте окно диалога Добавление таблицы (Show Table). Списки полей двух таблиц, соединенные линией связи, появятся в окне конструктора.
  7. 7. Щелкните на кнопке Групповые операции (Totals) панели инструментов. В бланке запроса появится дополнительная строка Групповая операция: (Total), позволяющая выполнять статистические операции со значениями конкретных полей.

Рис. 17.6. Добавление таблицы

  1. Перетащите поле Фамилия в ячейку Поле (Field) первого столбца конструктора.
  2. В ту же ячейку второго столбца перетащите поле Имя таблицы Контакты.
  3. В третий, четвертый и пятый столбцы бланка запроса перетащите поле Дата таблицы Список (рис. 17.7).

Рис. 17.7. Запрос с групповыми операциями

  1. В раскрывающемся списке ячейки Групповая операция (Total) третьего столб ца бланка запроса выберите пункт Min.
  2. В той же ячейке четвертого столбца выберите пункт Мах.
  3. В пятом столбце задайте групповую операцию Count. Групповые операции построенного запроса обработают все записи таблицы Список, соответствующие конкретному человеку из таблицы Контакты, и вместо самих данных таблицы Список выведут в соответствующее поле результата запроса только значение величины, вычисляемой по определенной формуле. Доступные групповые операции перечислены в табл. 17.1.
Название Функция
Условие(Where) Режим задания условия отбора для поля, но которому не выполняется группировка. Access автоматически делает такое поле скрытым
Выражение (Expression) Вычисляемое поле, значение которого рассчитывается по сложной формуле
Group By Поле, определяющее группу записей, по которой вычисляются статистические параметры. К одной группе относятся все записи, для которых значения поля с режимом Group By (Группировка) одинаковы
Last Последнее значение в группе
First Первое значение в группе
Var Вариация значений поля
StDev Стандартное отклонение величин ноля от среднего
Count Количество записей, соответствующее ноле которых не содержит величины Null
Мах Максимальное значение
Min Минимальное значение
Avg Среднее значение поля
Sum Сумма значений поля по всем записям

ТАБЛИЦА 17.1 . Групповые операции

Примечание

Поскольку в пятом поле запроса вычисляется количество записей, в ячейку Поле этого столбца можно поместить любое поле таблицы Список.

  1. Щелкните на кнопке Вид, чтобы выполнить запрос. Появится таблица с пятью столбцами. Два первых столбца содержат фамилии и имена людей. По ним выполняется группировка, то есть расчет значений остальных полей запроса выполняется для записей таблицы Список, сопоставляемых с одним человеком. Как уже говорилось выше, соответствие контакта таблицы Список и человека из таблицы Контакты определяется полями Код_Контакты, с помощью которых осуществляется связь этих двух таблиц. Третий и четвертый столбцы запроса выводят соответственно дату первого (функция Min) и последнего (функция Мах) контакта с данным человеком. Пятый столбец содержит количество записей в таблице Список (функция Count), соответствующих. данному человеку, то есть число контактов с ним. Единственный недостаток построенного запроса — это непонятные имена столбцов. Давайте скорректируем их.
  2. Щелчком на кнопке Вид вернитесь в конструктор запроса.
  3. В ячейке Поле третьего столбца замените имя Дата на текст Дата первого контакта: Дата. Правая часть этого выражения, расположенная правее двоеточия, по-прежнему задает имя поля, а левая определяет название столбца результата запроса. Таким образом, любому столбцу запроса можно назначить произвольное имя.
  4. В ячейке Поле четвертого столбца введите Дата последнего контакта: Дата.
  5. В первой строке пятого столбца бланка’запроса введите Число контактов: Дата.

Примечание

К сожалению, подобный прием не подходит для смены названия поля, значение которого не вычисляется, а передается из таблицы. То есть таким способом не удастся переименовать поле Имя.

  1. Снова щелкните на кнопке Вид.
  2. Закройте запрос.
  3. Для сохранения изменений структуры щелкните на кнопке Да.
  4. В окне диалога Сохранение (Save As) введите имя Итоговый запрос и щелкните на кнопке ОК.

Добавить комментарий