Перейти до вмісту

Having (SQL)

Матеріал з Вікіпедії — вільної енциклопедії.
Версія від 22:35, 28 грудня 2011, створена IvanBot (обговорення | внесок) (replaced: =Зовнішні посилання= → = Посилання =)

HAVING — необов'язковий параметр оператора SELECT для зазначення умови на результат агрегатних функцій (MAX, SUM, AVG, …).

HAVING <умови> подібний до WHERE <умови> за винятком того, що рядки відбираються не за значенням стовпців, а будуються зі значень стовпців вказаних в GROUP BY і значень агрегатних функцій, обчислених для кожної групи, утвореної GROUP BY. Якщо GROUP BY не використовується, HAVING поводить себе як WHERE.

Приклади

Для отримання списку ідентифікаційних номерів відділень, в яких загальна зарплатня 1 січня 2000 року перевищує $1000, разом із сумої зарплат на цей день:

 SELECT DeptID, SUM(SaleAmount)
 FROM Sales
 WHERE SaleDate = '01-Jan-2000'
 GROUP BY DeptID
 HAVING SUM(SaleAmount) > 1000

Наступний запит поверне список відділів, в яких працює більше ніж один співробітник:

 SELECT DepartmentName, COUNT(*) 
 FROM employee,department 
 WHERE employee.DepartmentID = department.DepartmentID 
 GROUP BY DepartmentName
 HAVING COUNT(*)>1;

Посилання