FROM Преподаватель;

Операция подведения итогов

Операцияподведения итоговSUMMARIZE выполняет «вертикальные» или групповые вычисления и имеет следующий формат:

SUMMARIZE <исх. отн.> BY (<список атрйбутов>) ADD <выр.> AS
<новый атрибут>,

где <исх. отн.> - исходное отношение, которое задается именем отношения либо заключенным в круглые скобки выражением реляционной алгебры,

<список атрибутов> - разделенные запятыми имена атрибутов исходного отношения A1, A2,... , AN,

<выр.> - скалярное выражение, аналогичное выражению операции EXTEND,

<новый атрибут> — имя формируемого атрибута.

В списке атрибутов и в выражении не должен использоваться
<новый атрибут>.

Результатом операции SUMMARIZE является отношение Rс заголовком, состоящим из атрибутов списка, расширенного новым атрибутом. Для получения тела отношения R сначала выполняется проецирование (назовем проекцию R1) исходного отношения на атрибуты A1, A2,..., AN, после чего каждый кортеж проекции расширяется новым (N + 1)-м атрибутом. Поскольку проецирование, как правило, приводит к сокращению количества кортежей по отношению к исходному отношению (удаляются одинаковые кортежи), то можно считать, что происходит своеобразное группирование кортежей исходного отношения: одному кортежу отношения R1 соответствует один или более (если было дублирование при проецировании) кортежей исходного отношения. Значение (N + 1)-гo атрибута каждого кортежа отношения R формируется путем вычисления выражения над соответствующей этому кортежу группой кортежей исходного отношения.

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

Языки запросов позволяют вычислять групповые функции (по группе выделенных строк) с помощью функций:

Avg — среднее арифметическое значение поля;

Count — число выбранных записей;

Max — максимальное значение поля;

Min — минимальное значение поля;

Sum — сумма значений поля.

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

Задание 14.

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

На языке реляционной алгебры:

SUMMARIZE Студент BY (Группа) ADD COUNT(Номер_студ) AS Кол_студ

На языке QBE. Запрос на выборку с групповыми операциями:

Запрос_14

Поле Группа   Кол_студ: Номер_студ  
Имя таблицы Студент Студент
Групповая операция Группировка Count
Вывод на экран ü ü
Условие отбора      

Чтобы задать групповые операции необходимо выполнить:

В окне базы данных:

Ø выбрать объект Запросы,

Ø открыть окно Конструктора запросов и добавить таблицу Преподаватель

Создать \ Конструктор \ добавить таблицу Преподаватель \ОК

Ø включить в запрос групповые операции - Вид \ Групповые операции

Группировка – означает группирование записей по значениям данного поля. Определяет группы, для которых выполняются вычисления. Например, чтобы показать суммарные продажи по типам товаров, выберите элемент Группировка для поля «Тип».

Условие – означает задание условия при выполнении групповой операции. Определяет условия отбора для поля, которое не участвует в группировке. Если для поля выбирается этот параметр, автоматически снимается флажок Вывод на экран, и поле не выводится на экран при выполнении запроса.

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

На языке SQL: