Оператор HAVING онлайн урок.


Оператор HAVING - это аналог WHERE, но для групп. Предложение HAVING записывается после определения группы GROUP BY. Например, нам необходимо выделить группы студентов, у которых средний возраст более 22 года. Тогда логическое выражение для этих групп необходимо записать после HAVING:

SELECT name, AVG(age) FROM student GROUP BY name HAVING AVG(age) > 22;
+---------+----------+
| name | AVG(age) |
+---------+----------+
| Bob | 23.0000 |
| Jeff | 25.0000 |
| John | 27.0000 |
| Mike | 24.0000 |
| Stanley | 23.0000 |
+---------+----------+
5 rows in set (0.00 sec)

Мы можем ограничить первоначальный отбор записей для подбора групп при помощи WHERE. Допустим мы хотим ограничится студентами до 27 - и для них определить средние значения.

SELECT name, AVG(age) FROM student WHERE age < 27 GROUP BY name HAVING AVG(age) > 22;
+---------+----------+
| name | AVG(age) |
+---------+----------+
| Bob | 23.0000 |
| Jeff | 25.0000 |
| Mike | 24.0000 |
| Stanley | 23.0000 |
+---------+----------+
4 rows in set (0.00 sec)


Проверьте свои знания
Таблица country: получить континенты, среднее население по странам которых которых превышает 40 000 000 человек.