Введение в курс "Базы данных" - Группировка

E-mail Печать PDF
Рейтинг пользователей: / 9
ХудшийЛучший 
Индекс материала
Введение в курс "Базы данных"
Классификация БД по их использованию
Реляционные БД (MS Access)
Ключи
Связи между таблицами
Неформальные методы приведения таблиц к третьей нормальной форме
Операции в БД (VBA)
Операции над записями
SQL
Оператор Select
DISTINCT
FROM
Группировка
Объединение таблиц
Параметры
Перекрёстные запросы
Обновление данных
Удаление данных
Подчинённые запросы
Создание таблиц
Добавление новых полей
Tехнология разработки программного обеспечения, использующего базы данных
Доступ к данным в VB 6.0
Работа с записями
Отчёты в VB6
Доступ к данным в C++ Builder
Отчёты в C++ Builder
Создание многоуровневых приложений
Доступ к данным в C# (Visual Studio 2005)
Создание отчётов
OLAP технологии. XML язык
SQL Server
Триггер
Программирование триггера
XML
Все страницы

Группировка

Объединяет записи с одинаковыми значениями в указанном списке полей в одну запись.  Если инструкция SELECT содержит статистическую функцию SQL, например, Sum или Count, то для каждой записи будет вычислено итоговое значение.

 

Синтаксис:

 

SELECT списокПолей

 

FROM таблица

 

WHERE условиеОтбора

 

[GROUP BY группируемыеПоля]

 

группируемыеПоля - имена полей (до 10), которые используются для группировки записей.  Порядок имен полей в аргументе группируемыеПоля определяет уровень группировки для каждого из этих полей. Предложение GROUP BY является необязательным.Итоговые значения не рассчитываются, если инструкция SELECT не содержит статистической функции SQL.

 

Значения Null, которые находятся в полях, заданных в предложении GROUP BY, группируются и не опускаются.  Однако статистические функции SQL не обрабатывают значения Null.

 

Если поле, включенное в предложение GROUP BY, не является полем типа Memo или объекта ActiveX, оно может содержать ссылку на любое поле, перечисленное в предложении FROM, даже если это поле не включено в инструкцию SELECT, при условии, что инструкция SELECT содержит по крайней мере одну статистическую функцию SQL.  Ядро базы данных Jet не поддерживает группировку полей МЕМО или объекта ActiveX.

 

При использовании предложения GROUP BY все поля в списке полей инструкции SELECT должны быть либо включены в предложение GROUP BY, либо использоваться в качестве аргументов статистической функции SQL.

 

SELECT Сотрудники.Отдел, Sum(Сотрудники.Зарплата) AS Sum_Зарплата

 

FROM Сотрудники

 

GROUP BY Сотрудники.Отдел;

 

Используйте предложение WHERE для исключения записей из группировки, а предложение HAVING для применения фильтра к записям после группировки.

 

Определяет, какие сгруппированные записи отображаются при использовании инструкции SELECT с предложением GROUP BY.  После того как записи будут сгруппированы с помощью предложения GROUP BY, предложение HAVING отберет те из полученных записей, которые удовлетворяют условиям отбора, указанным в предложении HAVING.

 

Синтаксис:

 

SELECT списокПолей

 

FROM таблица

 

WHERE условиеОтбора

 

GROUP BY группируемыеПоля

 

[HAVING условиеГруппировки]

 

Предложение HAVING является необязательным. Предложение HAVING похоже на предложение WHERE, которое определяет, какие записи должны быть отобраны.  После того как записи будут сгруппированы с помощью предложения GROUP BY, предложение HAVING указывает, какие из полученных записей должны быть отобраны:

 

SELECT Сотрудники.Отдел, Sum(Сотрудники.Зарплата) AS Sum_Зарплата

 

FROM Сотрудники

 

GROUP BY Сотрудники.Отдел

 

HAVING (((Sum(Сотрудники.Зарплата))>3000));

 

Предложение HAVING может содержать до 40 выражений, связанных логическими операторами, такими как And и Or.

 



 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий: