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;
HAVING
— це зручно, але не обов'язково. Код тотожний наведеному вище, але без використання HAVING
, може виглядати так:
SELECT * FROM ( SELECT DepartmentName AS deptNam, COUNT(*) AS empCnt FROM Employee AS emp, Department AS dept WHERE emp.DepartmentID = dept.DepartmentID GROUP BY deptNam ) AS grp WHERE grp.empCnt > 1;
Посилання
- SQL пункти HAVING і GROUP BY [ 3 червня 2011 у Wayback Machine.]
Це незавершена стаття про мови програмування. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
HAVING neobov yazkovij parametr operatora a href wiki Select SQL title Select SQL SELECT a dlya zaznachennya umovi na rezultat agregatnih funkcij MAX SUM AVG b HAVING lt umovi gt b podibnij do b WHERE lt umovi gt b za vinyatkom togo sho ryadki vidbirayutsya ne za znachennyam stovpciv a buduyutsya zi znachen stovpciv vkazanih v GROUP BY i znachen agregatnih funkcij obchislenih dlya kozhnoyi grupi utvorenoyi GROUP BY Yaksho GROUP BY ne vikoristovuyetsya HAVING povodit sebe yak WHERE PrikladiDlya otrimannya spisku identifikacijnih nomeriv viddilen v yakih zagalna zarplatnya 1 sichnya 2000 roku perevishuye 1000 razom iz sumoyu zarplat na cej den SELECT DeptID SUM SaleAmount FROM Sales WHERE SaleDate 01 Jan 2000 GROUP BY DeptID HAVING SUM SaleAmount gt 1000 Nastupnij zapit poverne spisok viddiliv v yakih pracyuye bilshe nizh odin spivrobitnik SELECT DepartmentName COUNT FROM employee department WHERE employee DepartmentID department DepartmentID GROUP BY DepartmentName HAVING COUNT gt 1 HAVING ce zruchno ale ne obov yazkovo Kod totozhnij navedenomu vishe ale bez vikoristannya HAVING mozhe viglyadati tak SELECT FROM SELECT DepartmentName AS deptNam COUNT AS empCnt FROM Employee AS emp Department AS dept WHERE emp DepartmentID dept DepartmentID GROUP BY deptNam AS grp WHERE grp empCnt gt 1 PosilannyaSQL punkti HAVING i GROUP BY 3 chervnya 2011 u Wayback Machine Ce nezavershena stattya pro movi programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi