Базы данных. Основы SQL реляционных баз данных. Копейкин М.В - 128 стр.

UptoLike

Заметим, что в таблице три таких строки с данным значением, но запрос
возвращает только одно значение.
Имейте в виду, что сгруппированные агрегатные функции, которые являются
агрегатными функциями, определенными в терминах предложения GROUP BY, могут
производить многочисленные значения. Они, следовательно, не позволительны в
подзапросах такого характера. Даже если GROUP BY и HAVING используются таким
способом, что только
одна группа выводится с помощью подзапроса, команда будет
отклонена в принципе. Вы должны использовать одиночную агрегатную функцию с
предложением WHERE, что устранит нежелательные группы. Например, следующий
запрос, который должен найти среднее значение окладов сотрудников в отделе 2:
SELECT AVG (Оклад)
FROM Отдел_Сотрудники
GROUP BY Ид_Отд
HAVlNG Ид_Отд = 2;
не может использоваться в подзапросе! Правильный
запрос: -
SELECT AVG (Оклад)
FROM Отдел_сотрудники
WHERE Ид_Отд = 2;
Вернемся к первому запросу данного параграфа, который указал нам,
что самый молодой сотрудник в таблице сотрудников имеет год рождения
1980.Теперь на основании данной информации можно найти всех самых
молодых сотрудников в таблице СОТРУДНИК (рис. 2.1), c помощью
следующего запроса:
SELECT *
FROM Сотрудник
WHERE Год_рожд=1980