Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.Б.Д / лекции / 7БД.doc
Скачиваний:
35
Добавлен:
30.05.2020
Размер:
60.42 Кб
Скачать

4 Пропозиція having

За допомогою HAVING відображаються всі заздалегідь згруповані за допомогою GROUP блоки даних, що задовольняють заданим в HAVING умовам. Це додаткова можливість "профільтрувати" вихідний набір.

Умови в HAVING відрізняються від умов в WHERE:

HAVING виключає з результуючого набору даних групи з результатами агрегованих значень;

WHERE виключає з розрахунку агрегатних значень по угрупуванню запису, не задовольняючі умові;

в умові пошуку WHERE не можна задавати агрегатні функції.

Приклад 6.15. Визначити фірми, у яких загальна кількість операцій перевищила три.

SELECT Клієнт.Фірма, Count(Операція.Кількість) AS Кількість_операцій

FROM Клієнт INNER JOIN Операція ON Клиент.КодКлиента=Операція.КодКлиента

GROUP Клієнт.Фірма

HAVING Count(Операція.Кількість) >3

Приклад 6.15. Визначення фірм, у яких загальна кількість операцій перевищила три.

Приклад 6.16. Вивести список товарів, проданих на суму більше 10000 крб.

SELECT Товар.Назва Sum(Товар.Ціна*Операція.Кількість) AS Вартість

FROM Товар INNER JOIN Операція ON Товар.КодТовара=Операція.КодТовара

GROUP Товар.Назва

HAVING Sum(Товар.Ціна*Операція.Кількість) >10000

Приклад 6.16. Виведення списку товарів, проданих на суму більше 10000 крб.

Приклад 6.17. Вивести список товарів, проданих на суму більше 10000 без вказівки суми.

SELECT Товар.Назва

FROM Товар INNER JOIN Операція ON Товар.КодТовара=Операція.КодТовара

GROUP Товар.Назва

HAVING Sum(Товар.Ціна*Операція.Кількість) >10000

Приклад 6.17. Виведення списку товарів, проданих на суму більше 10000 без вказівки

Контрольні питання

  1. Яким чином можна створити похідне поле в запиті SQL?

  2. Наведіть відповідні приклади.

  3. В чому полягає призначення вбудованої функції Left? Коли доцільно її використовувати?

  4. Для чого призначені функції Year і Month? Наведіть приклад їх використання.

  5. Для чого призначені агрегатні функції SQL?

  6. Перерахуйте доступні підсумкові функції SQL та дайте коротку характеристику кожній.

  7. Що може виступати в якості виразу для агрегатних функцій? Наведіть відповідний приклад.

  8. Для чого призначене ключове слово DISTINCT? В чому особливість його використання?

  9. Навіщо потрібна пропозиція GROUP? Коли доцільно її використовувати?

  10. Яким чином працює пропозиція HAVING?

  11. Що спільного та відмінного у пропозиції HAVING та WHERE?

5

Соседние файлы в папке лекции