Використання пропозиції group by

Рубрика: Агрегація Даних з Груповими Функціями

Всі стовпчики в списку SELECT. які не перебувають в групових функціях, повинні бути в реченні GROUP BY.







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

Пропозиція SELECT визначає стовпці, які будуть отримані, в такий спосіб:

Стовпець номера відділу в таблиці EMPLOYEES

Середнє значення всіх зарплат в групі, яку Ви визначили в реченні GROUP BY

Пропозиція FROM визначає таблиці, до яких повинна звернутися база даних: таблиця EMPLOYEES.







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

Пропозиція GROUP BY визначає, як рядки повинні бути згруповані. Рядки групуються за номером відділу, таким чином, функція AVG. яка застосовується до колонку зарплати, обчислює середню зарплату для кожного відділу.

Відзначте. Щоб упорядкувати результати запиту в порядку по зростанню або в порядку за спаданням, включите пропозицію ORDER BY в запит.

Вказівки по Реченню GROUP BY

Стовпець GROUP BY не зобов'язаний бути в списку SELECT.

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

Можна також використовувати групову функцію в пропозицію ORDER BY:

SELECT department_id, AVG (salary)
FROM employees
GROUP BY department_id
ORDER BY AVG (salary);