HAVING SQL: описание, синтаксис, примери

SQL е стандартен език за работа с релационни бази данни. Той има в арсенала си много мощни инструменти за манипулиране на данни, съхранявани под формата на таблици.

Без съмнение, възможността да се групират данните в тяхната извадка на определена основа е един такъв инструмент. SQL операторът HAVING, заедно с оператора WHERE, ви позволява да дефинирате условията за извадка от данни, които вече са групирани по определен начин.

Параметър HAVING SQL: description

Преди всичко, трябва да се отбележи, че този параметър е по избор и се прилага само във връзка с параметъра GROUP BY. Както можете да запомните, GROUP BY се използва, когато агрегираните функции се използват в SELECT, а резултатите от техните изчисления трябва да бъдат получени от специфични групи. Ако WHERE ви позволява да зададете примерни условия преди групирането на данните, HAVING съдържа условия, свързани с данните, които вече са директно в самите групи. За по-добро разбиране нека да разгледаме пример с схемата, показана на картинката по-долу.


Това е чудесен пример, който дава HAVING SQL описание. В тази таблица са изброени наименованията на продуктите, фирмите, които ги произвеждат и някои други области. В заявката в горния десен ъгъл се опитваме да получим информация за броя на имената на продуктите, които произвежда всяка компания, като в резултат искаме да покажем само онези фирми, които произвеждат повече от 2 продукта. Параметърът GROUP BY е формирал три групи, съответстващи на имената на компаниите, за всеки от които се броят броят на продуктите (редовете).Но клаузата HAVING отрязва една група от получената извадка, защото не отговаря на условието. В резултат на това получаваме две групи, съответстващи на компаниите с броя на продуктите 5 и 3.


Може да има въпрос, защо да се използва HAVING ако SQL е WHERE. Ако използвахме WHERE, тогава тя щеше да разглежда общия брой редове в таблицата, а не в групите, и условието нямаше да има значение в този случай. Често обаче те са напълно съчетани в една заявка.
В примера по-горе можем да видим как данните за имената на служителите, изброени в WHERE, първоначално се събират и след това се групират в GROUP BY, резултатът е допълнителна проверка на размера на заплатата за всеки служител.

SQL HAVING Параметър: Примери, Синтаксис

Да разгледаме някои характеристики на синтаксиса HAVING SQL. Описанието на този параметър е съвсем просто. Първо, както вече беше отбелязано, той се използва изключително във връзка с параметъра GROUP BY и се посочва веднага след него и преди ORDER BY, ако има такъв, в заявката. Това е разбираемо, тъй като HAVING определя условията за групирани данни. На второ място, за този параметър могат да се използват само агрегираните функции и полетата, посочени в клаузата GROUP BY. Всички условия в този параграф са посочени по същия начин, както в случая с WHERE.

Заключение

Както виждате, в този оператор няма нищо сложно. Семантично се използва по същия начин като WHERE. Важно е да се разбере какво използва WHERE за всичките си данни и HAVING - само по отношение на групите, определени в клаузата GROUP BY. Ние смепредставя изчерпателно описание на HAVING SQL, което е достатъчно за уверена работа с него.

Свързани публикации