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

Практическая работа №5

Тема: Вычисления в запросах. Использование функций.

Цель: научиться создавать запросы с использованием функций, для произведения вычислений.

Ход работы

Вычисляемые поля

1. Переименование полей. Иногда для удобства работы требуется переименовать некоторые поля в запросе (например, при наличии одноименных полей в разных таблицах). При переименовании полей используется следующий синтаксис: НовоеИмя: СтароеИмя (Рис. 3-20)

Возможности группировки данных. Использование агрегатных функций - student2.ru

2. Вычисляемые поля

Вычислить дату окончания срока хранения продуктов (Рис. 3-21) В БД «Магазин» хранятся: дата изготовления продукта (поле ДатаИзгот таблицы Поставки) и срок хранения продукта (в днях) (поле СрокХран(дней) таблицы Продукты). Если к дате прибавить количество дней, то получится новая дата. В нашем случае

а) ДатаОкончХран: [ДатаИзгот] + [СрокХран(дней)] или

б) ДатаОкончХран: [Поставки]![ДатаИзгот] + [Продукты]![СрокХран(дней)]

Заметим, что:

• в вычисляемых полях имена полей указываются в квадратных скобках - [ИмяПоля] (скобки можно отпустить, если в имени поля используются только буквы и/или цифры и нет ссылки на таблицу)

• на имена полей можно ссылаться

• только по имени, если нет одноименных полей в других таблицах запроса: [ИмяПоля]

• по имени таблицы и имени поля: [ИмяТаблицы]![ИмяПоля]

• для записи вычисляемых полей можно использовать построитель выражений. Для вызова построителя выражений нажмите кнопку Возможности группировки данных. Использование агрегатных функций - student2.ru на панели инструментов.

Возможности группировки данных. Использование агрегатных функций - student2.ru

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

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

Наиболее часто используются следующие агрегатные функции:

• Count – подсчет количества записей, возвращаемых запросом

• Sum – вычисление суммы набора значений, содержащихся в заданном поле запроса

• Avg – вычисление арифметического среднего набора чисел, содержащихся в указанном поле запроса

• Max – вычисление максимального значения из набора значений, содержащихся в указанном поле запроса

• Min – вычисление минимального значения из набора значений, содержащихся в указанном поле запроса

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

• Сгруппировать данные продажи продуктов по дате продажи

• Задать функцию для подсчета количества продуктов (Count)

Для подключения групповых операций в запросе на выборку нажмите кнопку Возможности группировки данных. Использование агрегатных функций - student2.ru или выберите пункты меню Вид, Групповые операции. В бланке запроса появится дополнительная строка «Групповая операция» (Рис. 3-22).

Рассмотрим несколько примеров:

1. Рассчитать количество проданных продуктов за каждый день (Рис. 3-22, а) Обратите внимание, что поле, для которого установлена агрегатная функция, автоматически получает новое имя (Рис. 3-22, б).

Возможности группировки данных. Использование агрегатных функций - student2.ru

2. Рассчитать количество проданных продуктов за текущий день В отличие от предыдущего запроса здесь нет необходимости группировать данные по всем дням. Достаточно выбрать записи, относящиеся к текущему дню, а затем посчитать количество продуктов. Т.е. в строке «Групповая операция» вместо значения Группировка выберем Условие (обратите внимание, что поле с условием не выводится на экран) (Рис. 3-23). Для задания текущего дня можно использовать функцию Date(), возвращающую каждый день новую дату – текущую. В этом случае запрос станет более универсальным чем, если бы мы задавали конкретную дату.

Возможности группировки данных. Использование агрегатных функций - student2.ru

3. Рассчитать ежедневную сумму продаж продуктов, с учетом того, что ЦенаПродажи – это цена за единицу продукта. В этом запросе необходимо сгруппировать данные по дате продажи, создать вычисляемое поле: СуммаПродажи: Количество*ЦенаПродажи, а затем установить функцию Sum для вычисляемого поля (Рис. 3-24)

Возможности группировки данных. Использование агрегатных функций - student2.ru Возможности группировки данных. Использование агрегатных функций - student2.ru

Письменно ответить на вопросы:

1. Как создать запрос на основе нескольких таблиц?

2. Описать наиболее часто используемые агрегатные функции.

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

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

5. Как можно произвести расчёт данных не по группам, а по данным из заданного условием диапазона?

Сделать вывод по проделанной работе.

Наши рекомендации