- •ЛЕКЦІЯ 7
- •План
- •Обчислювальні поля
- •Розрахувати загальну вартість для кожної операції.
- •Одержати список фірм з вказівкою прізвища і ініціалів клієнтів
- •Одержати список товарів з вказівкою року і місяця продажу
- •Агрегатні функції
- •Приклади використання
- •Приклади використання
- •Пропозиція GROUP
- •Обчислити середній об'єм покупок, вчинених кожним покупцем
- •Визначити, на яку суму був проданий товар кожного найменування.
- •Підрахувати кількість операцій, здійснених кожною фірмою
- •Пропозиція HAVING
- •Різниця між HAVING та WHERE
- •Визначити фірми, у яких загальна кількість операцій перевищила три.
- •Вивести список товарів, проданих на суму більше 10000 одиниць
Обчислити середній об'єм покупок, вчинених кожним покупцем
SELECT Клієнт.Прізвище, Avg(Операція.Кількість) AS Середня_кількість
FROM Клієнт INNER JOIN Операція N Клієнт.КодКлієнта=Операція.КодКлієнта
GROUP Клієнт.Прізвище
Визначити, на яку суму був проданий товар кожного найменування.
SELECT Товар.Назва Sum(Товар.Ціна*Операція.Кількість) AS Вартість
FROM Товар INNER JOIN Операція
ON Товар.КодТовара=Операція.КодТовара GROUP Товар.Назва
Підрахувати кількість операцій, здійснених кожною фірмою
SELECT Клієнт.Фірма, Count(Операція.КодСделки) AS Кількість_операцій
FROM Клієнт INNER JOIN Операція
ON Клиент.КодКлієнта=Операція.КодКлієн та
GROUP Клієнт.Фірма
Пропозиція HAVING
За допомогою HAVING відображаються всі заздалегідь згруповані за допомогою GROUP блоки даних, що задовольняють заданим в HAVING умовам. Це додаткова можливість "профільтрувати" вихідний набір
Різниця між HAVING та WHERE
HAVING виключає з результуючого набору даних групи з результатами агрегованих значень;
WHERE виключає з розрахунку агрегатних значень по угрупуванню запису, не задовольняючі умові;
в умові пошуку WHERE не можна задавати агрегатні функції.
Визначити фірми, у яких загальна кількість операцій перевищила три.
SELECT Клієнт.Фірма, Count(Операція.Кількість) AS Кількість_операцій
FROM Клієнт INNER JOIN Операція ON Клієнт.КодКлієнта=Операція.КодКлієнта
GROUP Клієнт.Фірма
HAVING Count(Операція.Кількість) >3
Вивести список товарів, проданих на суму більше 10000 одиниць
SELECT Товар.Назва Sum(Товар.Ціна*Операція.Кількість) AS Вартість
FROM Товар INNER JOIN Операція ON Товар.КодТовара=Операція.КодТовара
GROUP Товар.Назва
HAVING Sum(Товар.Ціна*Операція.Кількість) >10000
