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, Інтернет
GROUP BY sintaksichna konstrukciya movi SQL dlya agregaciyi zapisiv vibranih za dopomogoyu zapitu SELECT PrikladiNehaj ye tablicya statej dlya kozhnoyi z yakih z pomizh inshogo zberigayetsya rik yih napisannya Potribno otrimati oglyad togo skilki statej bulo napisano kozhnogo roku SELECT year count 1 FROM articles GROUP BY year Rezultat mozhe buti takim year count 1 2006 72007 152008 22Inshi mozhlivostiGROUP BY ta agregatni funkciyi Div takozh Agregatna funkciya Vikoristannya span class k GROUP span span class w span span class k BY span dozvolyaye zastosovuvati agregatni funkciyi Najchastishe vikoristovuyetsya dlya pidrahunku kilkosti zapisiv vidpovidnih kozhnomu znachennyu inshogo stovpcya u vishenavedenomu prikladi roku chasto takozh sumi serednogo arifmetichnogo ta inshih statistichnih ocinok vibranih zapisiv HAVING Div takozh Having SQL U vipadkah koli vibirku z span class k GROUP span span class w span span class k BY span neobhidno dodatkovo obmezhiti a vikoristovuvati operator WHERE ne mozhna oskilki vin ne pracyuye z agregatnimi funkciyami neobhidno vikoristovuvati specialne klyuchove slovo span class k HAVING span yake dozvolyaye zadavati umovi nad agregatnimi funkciyami WITH ROLLUP Deyaki sistemi keruvannya bazami danih napriklad MySQL ta MariaDB pidtrimuyut konstrukciyu span class k WITH span span class w span span class k ROLLUP span sho vzhivayetsya z operatorom span class k GROUP span span class w span span class k BY span Zapit iz konstrukciyeyu span class k WITH span span class w span span class k ROLLUP span poverne zgidno zi standartom ryadki zi znachennyam NULL u tih stovpcyah vidpovidno do yakih dani agreguyutsya yaksho vkazani a na misci znachen agregatnih funkcij rezultati cih funkcij dlya vsih ryadkiv napriklad dlya kilkosti span class k count span ce kilkist usih vhodzhen dlya sumi span class k sum span zagalna suma i t d Dlya vishenavedenogo prikladu zapitu SELECT year count 1 FROM articles GROUP BY ROLLUP year rezultat bude shozhij na year count 1 2006 72007 152008 22NULL 44 Znachennya NULL v ostannomu ryadku predstavlyaye zagalnij pokaznik za vsi roki Agregovanih stovpciv abo viraziv mozhe buti j bilshe todi rezultatnij nabir mistitime znachennya NULL iz zagalnoyu sumoyu u zvorotnomu poryadku krim zaznachenih v operatori span class k GROUP span span class w span span class k BY span Primitki Arhiv originalu za 25 veresnya 2015 Procitovano 8 chervnya 2017 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya PosilannyaSQL GROUP BY Statement W3Schools anglijskoyu originalu za 4 sichnya 2017 Procitovano 5 sichnya 2017 GROUP BY Modifiers MySQL anglijskoyu originalu za 6 sichnya 2017 Procitovano 5 sichnya 2017 Ce nezavershena stattya pro bazi danih Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi