Групування

Для групування (grouping) в SQL використовується речення GROUP BY, яке йде в конструкції „select-from-where” за реченням WHERE. Після службових слів GROUP BY задається список групуючих атрибутів (grouping attributes). Алгоритм групування:

  • Кортежі відношення, яке задається реченням FROM, ділиться на групи, для яких набір групуючих атрибутів має одне значення.
  • Якщо список SELECT має оператори агрегування, вони застосовуються для кожної групи, також повертаючи одне значення для групи.
  • У результуючому відношенні створюється один кортеж для групи, який містить атрибути:
    • Або групуючі,
    • Або результати агрегування.

Приклад 5.13. Обчислимо суми тривалості всіх фільмів кожної студії. Аналізуємо відношення:

Запит:

Приклад 5.14. Знайдемо студії, які володіють правами на певні фільми:

Приклад 5.15. Знайдемо сумарну тривалість відтворення фільмів, знятих кожним продюсером, використовуючи відношення

У запиті групується віртуальне відношення, створене зі з’єднання двох збережених відношень:

Рис.5.21. Приклад групування та агрегування даних з кількох відношень

Звернімо увагу, що атрибути, задіяні в реченні WHERE підзапиту, не є ні групуючими, ні агрегуючими. Але їх не повинно бути у списку речення SELECT.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: