GROUP BY — (синтаксична) конструкція мови SQL для (агрегації) записів, вибраних за допомогою (запиту) (SELECT).
Приклади
Нехай є таблиця статей, для кожної з яких з-поміж іншого зберігається рік їх написання. Потрібно отримати огляд того, скільки статей було написано кожного року.
SELECT year, count(1) FROM articles GROUP BY year;
Результат може бути таким:
year | count(1) |
---|---|
2006 | 7 |
2007 | 15 |
2008 | 22 |
Інші можливості
GROUP BY та агрегатні функції
Використання GROUP BY
дозволяє застосовувати агрегатні функції. Найчастіше використовується для підрахунку кількості записів, відповідних кожному значенню іншого стовпця (у вищенаведеному прикладі року), часто також суми, (середнього арифметичного) та інших (статистичних оцінок) вибраних записів.
HAVING
У випадках, коли вибірку з GROUP BY
необхідно додатково обмежити, а використовувати оператор (WHERE) не можна, оскільки він не працює з агрегатними функціями, необхідно використовувати спеціальне ключове слово HAVING
, яке дозволяє задавати умови над агрегатними функціями.
WITH ROLLUP
Деякі системи керування базами даних (наприклад, (MySQL) та (MariaDB)) підтримують конструкцію WITH ROLLUP
, що вживається з оператором GROUP BY
. Запит із конструкцією WITH ROLLUP
поверне, згідно зі стандартом, рядки зі значенням (NULL) у тих стовпцях, відповідно до яких дані агрегуються (якщо вказані), а на місці значень агрегатних функцій — результати цих функцій для всіх рядків — наприклад, для кількості (count
) це кількість усіх входжень, для суми (sum
) — загальна сума і т. д.
Для вищенаведеного прикладу запиту
SELECT year, count(1) FROM articles GROUP BY ROLLUP (year);
результат буде схожий на:
year | count(1) |
---|---|
2006 | 7 |
2007 | 15 |
2008 | 22 |
NULL | 44 |
Значення (NULL) в останньому рядку представляє загальний показник за всі роки. Агрегованих стовпців або виразів може бути й більше — тоді результатний набір міститиме значення NULL із загальною сумою у зворотному порядку, крім зазначених в операторі GROUP BY
.
Примітки
- . Архів оригіналу за 25 вересня 2015. Процитовано 8 червня 2017.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title ()
Посилання
- SQL GROUP BY Statement. (W3Schools) (англійською) . оригіналу за 4 січня 2017. Процитовано 5 січня 2017.
- GROUP BY Modifiers. (MySQL) (англійською) . оригіналу за 6 січня 2017. Процитовано 5 січня 2017.
Це незавершена стаття про бази даних. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет