Добавил:
Рад, если кому-то помог Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
01.11.2025
Размер:
1.63 Mб
Скачать

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

SELECT R1.Дисциплина, COUNT(*) FROM R1

WHERE R1.Оценка IS NOT NULL GROUP BY R1.Дисциплина;

не попадет в набор кортежей перед группировкой, поэтому количество кортежей в группе для дисциплины Моделирование будет на 1 меньше.

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

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

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

Рассмотрим в качестве другого пример отношения таблицы F и Q из базы данных Банк , в которой содержится информация о счетах в филиалах некоторого банка:

Аргументы в предложении HAVING подчиняются тем же самым правилам, что и в предложении SELECT, где используется GROUP BY. Они должны иметь одно значение на группу вывода.

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

Соседние файлы в папке Лекции ПрБД, 2 курс 3 семестр (для ИВТ и т.п.)