ПОШУК ПО САЙТУ

HAVING SQL: опис, синтаксис, приклади

SQL є стандартом мови для роботи з реляційними базами даних. Він має в своєму арсеналі безліч потужних інструментів маніпулювання даними, що зберігаються у вигляді таблиць.

having sql опис

Безсумнівно, можливість групувати дані приїх вибірці за певною ознакою є одним з таких інструментів. Оператор SQL HAVING поряд з оператором WHERE дозволяє визначати умови вибірки вже згрупованих певним чином даних.

Параметр HAVING SQL: опис

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

оператор sql having

Це відмінний приклад, що дає HAVING SQL опис. Дана таблиця з переліком найменувань продукції, компаніями, що випускають їх, і деякими іншими полями. У запиті в верхньому правому куті ми намагаємося отримати інформацію про те, яка кількість найменувань продукції випускає кожна компанія, при цьому в результат ми хочемо вивести тільки ті компанії, які випускають більше 2 найменувань. Параметр GROUP BY сформував три групи, відповідні назвам компаній, для кожної з яких пораховано кількість продукції (рядків). Але параметр HAVING своїм умовою відсік одну групу з результуючої вибірки, оскільки вона не задовольняла умові. В результаті ми отримуємо дві групи, відповідні компаніям з кількістю продукції 5 і 3.

Може виникнути питання про те, навіщо використовуватиHAVING, якщо в SQL є WHERE. Якби ми використовували WHERE, то він би дивився на загальну кількість рядків в таблиці, а не по групах, і умова не мало б сенсу в даному випадку. Однак досить часто вони прекрасно уживаються в одному запиті.

sql having приклади синтаксис

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

Параметр SQL HAVING: приклади, синтаксис

Розглянемо деякі особливості синтаксисуHAVING SQL. Опис даного параметра досить просте. По-перше, як уже зазначалося, він використовується виключно в зв'язці з параметром GROUP BY і вказується відразу ж після нього і перед ORDER BY, якщо такий є в запиті. Воно і зрозуміло, так як HAVING визначає умови для вже згрупованих даних. По-друге, в умови цього параметра можна використовувати тільки агрегатні функції і поля, зазначені в параметрі GROUP BY. Всі умови в даному параметрі вказуються точно таким же чином, як і у випадку з WHERE.

висновок

Як бачите, нічого складного в цьому операторінемає. Семантично він використовується так само, як і WHERE. Важливо зрозуміти те, що WHERE використовують щодо всіх обираних даних, а HAVING - тільки по відношенню до груп, визначеним в параметрі GROUP BY. Ми представили вичерпне для HAVING SQL опис, якого достатньо для впевненої роботи з ним.

</ P>
  • оцінка: