Оператор HAVING указывает условие на результатах агрегатных функций. Оператор HAVING аналогичен оператору WHERE, но только для GROUP BY. По этому есть некая последовательность:
SELECT column [AS ALIAS]
FROM table
WHERE [NOT] conditions [AND, OR]
GROUP BY column
HAVING conditions
FROM table
WHERE [NOT] conditions [AND, OR]
GROUP BY column
HAVING conditions
Если параметр GROUP BY для SELECT не задан, то HAVING применяется к группе всех строк таблицы, как оператор WHERE.
Пример 1.
SELECT title, SUM(salary) FROM emp
GROUP BY title
HAVING SUM(salary) > 2000;
GROUP BY title
HAVING SUM(salary) > 2000;
TITLE SUM(SALARY)
------------------------- -----------
President 2500
Sales Representative 7380
Stock Clerk 9490
Warehouse Manager 6157
------------------------- -----------
President 2500
Sales Representative 7380
Stock Clerk 9490
Warehouse Manager 6157
Комментарий:
Принцип действия предложения HAVING заключается в следующем: при создании каждой группы (с помощью GROUP BY) рассчитывается сумма прибыли (SUM (SALARY)) для этой группы. Логическое условие проверяется с помощью предложения HAVING, если условие возвращает true, группа включается в результат.
Комментариев нет :
Отправить комментарий