Команда select розділ group by - угруповання записів по полях - мова запитів sql

Розділ GROUP BY

Якщо в табличному вираженні присутній розділ GROUP BY SQL. то наступним виконується GROUP BY.

Якщо позначити через R таблицю, що є результатом попереднього розділу (FROM або WHERE), то результатом розділу GROUP BY є розбиття R на безліч груп рядків, що складається з мінімального числа груп таких, що для кожного стовпця зі списку стовпців розділу GROUP BY у всіх рядках кожної групи, що включає більше одного рядка, значення цього стовпця рівні. Для позначення результату розділу GROUP BY в стандарті використовується термін "згрупована таблиця".

Якщо твердження SELECT містить пропозицію GROUP BY (SELECT GROUP BY), список вибору може містити тільки наступні типи виразів:

  • Константи.
  • Агрегатні функції.
  • Функції USER, UID, і SYSDATE.
  • Вирази. відповідні перерахованим в реченні GROUP BY.
  • Вирази. включають перераховані вище вираження.

Приклад 1. Обчислити загальний обсяг покупок для кожного товару:

Фраза GROUP BY не припускав упорядкування рядків. Для упорядкування результату цього прикладу за кодами товарів, слід помістити фразу ORDER BY stock слідом за фразою GROUP BY.

Приклад 2. Можна використовувати угруповання даних GROUP BY спільно з умовою. Наприклад, вибрати для кожного товару, що купується його код і загальний обсяг покупок, за винятком покупок покупця з кодом 23:

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

Рядки таблиці можна групувати по будь-якій комбінації її полів. Якщо поле, за значеннями якого здійснюється групування, містить будь-які невизначені значення, то кожне з них породжує окрему групу.

Припустимо, є завдання на обчислення кількості будь-якого продукту. Постачальник поставляє нам продукцію за певною ціною. Обчислимо загальну кількість кожного з продуктів. У цьому нам допоможе фраза GROUP BY. Результатом завдання стане таблиця, що складається з декількох колонок. Поставки будуть групуватися по ПР. Компонування відбувається по групах, яку і ініціює Group By SQL. Необхідно відзначити, що дана фраза передбачає застосування фрази Select, вона ж в свою чергу визначає єдине значення для кожного виразу сформованої групи. Бувають три випадки для конкретного вираження: воно приймає арифметичне значення, воно стає SQL-функцією, яка буде зводити все значення стовпця до суми або іншому заданому значенню, також вираз може стати константою. Рядки таблиці не обов'язково повинні бути строго згруповані, вони можуть групуватися по будь-якій комбінації стовпців таблиці. Необхідно враховувати, що упорядкування запити по ПР можливо в тому випадку, якщо буде зроблений відповідний запит.