double arrow

Команда HAVING

Команда HAVING позволяет определить условия, чтобы удалить определенные группы из полученного набора данных, точно так же, как команда WHERE делает это для отдельных записей. Предположим, нам нужно получить максимальный стаж работы по каждой должности, как это мы делали выше, но при этом указать, что этот максимальный стаж должен быть более 7 лет. Следовательно, если на какой-то должности работают молодые сотрудники, имеющие меньший стаж работы, эта должность не будет приниматься.

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

SELECT Отдел, Должность, MAX(Стаж)FROM LichData, DoljnostWHERE Ключ = Сотрудник AND (MAX(Стаж) > 7)GROUP BY Отдел, Должность;

вызовет ошибку.

Использование в запросе команды HAVING решает эту проблему:

SELECT Отдел, Должность, MAX(Стаж)FROM LichData, DoljnostWHERE Ключ = СотрудникGROUP BY Отдел, ДолжностьHAVING MAX(Стаж) > 7;

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: