пропозицію GROUP BY. Запит, в якому присутня GROUP BY, називається групують запитом, оскільки в ньому групуються дані, отримані в результаті виконання операції SELECT, після чого для кожної окремої групи створюється єдина сумарна рядок. Стандарт SQL вимагає, щоб пропозиція SELECT і фраза GROUP BY були тісно пов'язані між собою. За наявності в операторі SELECT фрази GROUP BY кожен елемент списку в пропозиції SELECT повинен мати єдине значення для всієї групи. Більше того, пропозиція SELECT може включати тільки такі типи елементів: імена полів, підсумкові функції, константи і вирази, що включають комбінації перерахованих вище елементів. p align="justify"> Всі імена полів, наведені в списку пропозиції SELECT, повинні бути присутнім і у фразі GROUP BY - за винятком випадків, коли ім'я стовпця використовується у підсумковій функції. Зворотне правило не є справедливим - у фразі GROUP BY можуть бути імена стовпців, відсутні в списку пропозиції SELECT. p align="justify"> Якщо спільно з GROUP BY використовується пропозицію WHERE, то воно обробляється першим, а гуртування піддаються тільки ті рядки, які задовольняють умові пошуку.
Стандартом SQL визначено, що при проведенні групування усі відсутні значення розглядаються як рівні. Якщо два рядки таблиці в одному і тому ж группируемих стовпці містять значення NULL і ідентичні значення у всіх інших непорожніх группируемих стовпцях, вони поміщаються в одну і ту ж групу. p align="justify"> За допомогою HAVING відображаються всі попередньо згруповані за допомогою GROUP BY блоки даних, що задовольняють заданим в HAVING умовам. Це додаткова можливість В«профільтруватиВ» вихідний набір. p align="justify"> Умови в HAVING відрізняються від умов в WHERE:
1. HAVING виключає з результуючого набору даних групи з результатами агрегованих значень;
2. WHERE виключає з розрахунку агрегатних значень по угрупованню запису, що не задовольняють умові;
. в умові пошуку WHERE не можна задавати агрегатні функції.
До появи SQL в СУБД (незалежно від того, на якій моделі вони грунтувалися) доводилося підтримувати, принаймні, три мови, які зазвичай мали мало спільного: мова визначення даних (ЯОД), службовець для специфікації структур БД (зазвичай загальну структуру БД називають схемою БД); мова маніпулювання даними (ММД), що дозволяє створювати прикладні програми, що взаємодіють з БД; і мова адміністрування БД (ЯАДБ), за допомогою якого можна було виконувати службові дії (наприклад, змінювати структуру БД або виробляти її настройку з метою підвищення ефективності). Крім того, якщо потрібно було надати користувачам СУБД інтерактивний доступ до БД, доводилося вводити ще одну мову, оператори якого виконуються в діалоговому режимі. Мова SQL дозволяє вирішувати всі ці завдання. br/>
1.4