Руководство по SQL. Элемент HAVING.

Для того, чтобы определить условия, по которым записи будут отфильтрованы после выполнения запроса используется ключевое слово HAVING.

Запрос и использованием данного элемента имеет следующий вид:


SELECT колонка1, колонка2
FROM таблица1, таблица2
WHERE [ условия ]
GROUP BY колонка1, колонка2
HAVING [ условия ]
ORDER BY колонка1, колонка2

Пример:

Предположим, что у нас есть таблица developers, которая содержит следующие данные:


+----+-------------------+-----------+------------+--------+
| ID | NAME              | SPECIALTY | EXPERIENCE | SALARY |
+----+-------------------+-----------+------------+--------+
|  1 | Eugene Suleimanov | Java      |          2 |   2500 |
|  2 | Peter Romanenko   | Java      |          3 |   3500 |
|  3 | Andrei Komarov    | C++       |          3 |   2500 |
|  4 | Konstantin Geiko  | C#        |          2 |   2000 |
|  5 | Asya Suleimanova  | UI/UX     |          2 |   1800 |
|  7 | Ivan Ivanov       | C#        |          1 |    900 |
|  8 | Ludmila Geiko     | UI/UX     |          2 |   1800 |
+----+-------------------+-----------+------------+--------+

Теперь попробуем выполнить следующий запрос:


mysql> SELECT ID, NAME, SPECIALTY, SALARY 
FROM developers 
GROUP BY SPECIALTY 
HAVING COUNT(SPECIALTY) >= 2;

В результате выполнения данного запроса мы получим следующую таблицу:


+----+-------------------+-----------+--------+
| ID | NAME              | SPECIALTY | SALARY |
+----+-------------------+-----------+--------+
|  4 | Konstantin Geiko  | C#        |   2000 |
|  1 | Eugene Suleimanov | Java      |   2500 |
|  5 | Asya Suleimanova  | UI/UX     |   1800 |
+----+-------------------+-----------+--------+

На этом мы заканчиваем изучение элемента HAVING.
В следующей статье мы рассмотрим транзакции.