Предложение GROUP BY в Access объединяет записи с одинаковыми значениями в указанном списке полей в одну запись. Сводное значение создается для каждой записи, если в инструкцию SELECT включена агрегатная функция SQL, например Sum или Count.
Синтаксис
SELECT (ВЫБРАТЬ список полей)
Исходная таблица
Условие WHERE
[ГРУППИРОВАТЬ ПО группеСписокПоля]
Инструкция SELECT, содержащая предложение GROUP BY, включает в себя следующие элементы:
| Часть | Описание |
|---|---|
| список_полей | Имена полей, извлекаемых вместе с любыми псевдонимами, статистическими функциями SQL, предикатами отбора (ALL, DISTINCT, DISTINCTROW или TOP) или с другими параметрами инструкции SELECT. |
| Таблица | Имя таблицы, из которой извлекаются записи. |
| Условие. | Условия отбора. Если инструкция содержит предложение WHERE, то после его применения к записям ядро базы данных Microsoft Access сгруппирует значения. |
| список_полей_группы | Имена полей (не более 10), используемых для группировки записей. Порядок следования имен в списке_полей_группы определяет уровень группировки — от самого высокого до самого низкого |
Замечания
Предложение GROUP BY не является обязательным.
Если в инструкцию SELECT не включены статистические функции SQL, сводные значения не вычисляются.
Значения NULL в полях GROUP BY группируются и не опускаются. Однако они не вычисляются ни одной из статистических функций SQL.
Предложение WHERE используется для исключения строк, которые не нужно группировать. Предложение HAVING позволяет фильтровать записи после группировки.
Поле в списке полей GROUP BY, не содержащее данные объекта MEMO или объекта OLE, может ссылаться на любое поле любой таблицы, указанной в предложении FROM, даже если это поле не включено в инструкцию SELECT, при условии, что инструкция SELECT включает хотя бы одну агрегатную функцию SQL. Ядро СУБД Microsoft Access не может группироваться по полям Memo или OLE Object.
Все поля в списке полей SELECT должны либо содержаться в предложении GROUP BY, либо быть аргументами статистической функции SQL.