Речення SQL GROUP BY використовується для впорядкування ідентичних даних у групи на основі одного або кількох стовпців. Він зазвичай використовується з такими агрегатними функціями, як COUNT() SUM() AVG() MAX() і MIN() для виконання обчислень для кожної групи даних.
приклад: Спочатку ми будемо створити демонстраційна база даних SQL і таблиця, для яких ми будемо використовувати команду GROUP BY.
як вимкнути режим розробника на android
Запит:
SELECT Department SUM(Salary) AS TotalSalary FROM Employees GROUP BY Department;Вихід:
Синтаксис:
SELECT column1 aggregate_function(column2) FROM table_name WHERE condition GROUP BY column1 column2;- агрегатна_функція: функція, що використовується для агрегації, напр. SUM() AVG() COUNT().
- table_name: назва таблиці, з якої вибираються дані.
- хвороба: Додаткова умова для фільтрації рядків перед групуванням (використовується з WHERE).
- стовпець1 стовпець2: Стовпці, до яких застосовано групування.
Приклади GROUP BY
Припустимо, що у нас є таблиця Student. Ми вставимо деякі зразки даних у цю таблицю, а потім виконаємо операції за допомогою GROUP BY, щоб зрозуміти, як він групує рядки на основі стовпця та агрегує дані.
Приклад 1: групування за одним стовпцем
Коли ми групуємо за одним стовпцем, рядки з однаковим значенням у цьому стовпці об’єднуються. Наприклад, групування за предметами показує, скільки студентів навчається на кожному предметі.
Запит:
SELECT subject COUNT(*) AS Student_Count FROM Student GROUP BY subject;Вихід:
шлях, встановлений у java
Пояснення: Кожен предмет з’являється в таблиці двічі, тому кількість для англійської математики та природничих наук дорівнює 2.
Приклад 2: групування за кількома стовпцями
Використання GROUP BY із кількома стовпцями групує рядки, які мають однакові значення в цих стовпцях. Наприклад, групування за предметом і роком об’єднає рядки з однаковою парою предмет–рік, і ми зможемо підрахувати, скільки студентів потрапить у кожну групу.
Запит:
SELECT subject year COUNT(*) FROM Student GROUP BY subject year;Вихід:
Пояснення: Учні з однаковим предметом і роком об’єднуються в групи. Оскільки кожна пара суб’єкт–рік зустрічається двічі, кількість дорівнює 2 для кожної групи.
Речення HAVING у реченні GROUP BY
Речення HAVING використовується для фільтрації результатів після групування, особливо під час роботи з агрегатними функціями, такими як SUM() COUNT() або AVG(). На відміну від WHERE, він застосовує умови до згрупованих даних.
Приклад 1: Фільтрувати за загальною зарплатою
У цьому запиті ми групуємо співробітників за іменами та показуємо лише тих, чия загальна зарплата перевищує 50 000.
SELECT NAME SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>50000; Вихід
Пояснення : У результатах з’являються лише працівники, загальна зарплата яких перевищує 50 000.
linux змінити назву каталогу
Приклад 2: Фільтрувати за середньою зарплатою
У цьому запиті ми групуємо працівників за віком і показуємо лише ті вікові групи, де середня зарплата перевищує 60 000.
SELECT age AVG(sal) AS Average_Salary FROM emp GROUP BY age HAVING AVG(sal) > 60000;Вихід:
Пояснення: Цей запит групує працівників за віком і обчислює середню зарплату для кожного віку. Відображаються лише ті вікові групи, де середня зарплата перевищує 60 тис.
Створіть вікторину