GROUP BY s2. Группа , s1. Дисциплина



HAVING count (*)> 1;

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

Результат запроса:

 

Дадим пример запроса, где будет использован предикат NOT EXISTS. Его возможности удобно проиллюстрировать в тексте многотабличного запроса.

Запрос 13

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

 

Решение:

SELECT ФИО

FROM s2,s3

WHERE s2. Г py пп a=s3. Группа AND

Дисциплина = ' История ' AND NO Т EXISTS (SELECT ФИО

FROM s1

WHERE ФИО = s1. ФИО AND Дисциплина = ' История ');

 

Результат запроса:

 

Напомним, что предикат EXISTS истинен, когда подзапрос не пуст, то есть содержит хотя бы один кортеж, в противном случае предикат EXISTS ложен. Предикат EXISTS — истинен только тогда, когда подзапрос пуст. Обработка такого запроса состоит в том, что для каждого студента, обучающегося в группе, студентам которой необходимо сдавать экзамен по истории, проверяется истинность предиката NOT EXISTS. Истинность его устанавливается по факту присутствия во внутреннем запросе значений. Если подзапрос пуст, то данный студент еще не сдавал экзамен по истории, предикат EXISTS имеет значение TRUE, и ФИО студента помешается в результирующую таблицу вывода.

 

 


Дата добавления: 2019-07-15; просмотров: 140; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!