Группировка по нескольким столбцам
Как уже говорилось, столбцы группировки указываются в предложении GROUP BY. Если для группировки используются несколько столбцов, то статистический расчет осуществляется только для последнего столбца указанного в предложении GROUP BY.
Создание групп по нескольким столбцам, рассмотрим на примере таблицы "Список".
Список Запрос
Примечание:
Фильтрация групп
Для фильтрации групп, по каким либо условиям, применяется предложение HAVING. Предложение HAVING аналогично предложению WHERE, только WHERE фильтрует строки, а HAVING фильтрует группы. Предложение HAVING указывается после предложения GROUP BY. ВНИМАНИЕ: Правило применения имен полей в HAVING
В предложении HAVING, кроме статистических функций, могут анализироваться имена полей по которым проводилась группировка.
ПРИМЕРЫ: Запрос. В таблицы Ведомость, определить классы, где количество учеников больше 3.
Примечание: Предложение HAVING неумеет работать с псевдонимами полей. Поэтому, писать в запросе, Количество >3, будет неправильным, надо писать COUNT (Класс) >3
Запрос. В таблицы Ведомость, определить количество учеников в 1 и 3 классе.
Сортировка групп Для сортировки групп используется известное предложение ORDER BY,которое в запросе указывается последним. В качестве параметра сортировки, в предложение ORDER BУ указывается вычисляемое выражение. Сортировку рассмотрим на примере таблицы "Ведомость". Ведомость
Примеры: I. Выполнить ряд запросов к БД, составленной с нарушением правил нормализации.
Запрос 1. Определить фамилии отличников.
Запрос 2. Определить фамилии студентов, успешно сдавших экзамен.
Запрос 3. Определить фамилии студентов, получивших хотя бы одну двойку.
Запрос 4. Определить средний балл каждого студента.
II. Выполнить ряд запросов к БД, составленной по правилам нормализации.
Студенты Ведомость Дисциплины
Запрос 1. Определить фамилии отличников.
Запрос 2. Определить фамилии студентов, успешно сдавших экзамен.
Запрос 3. Определить фамилии студентов, получивших хотя бы одну двойку.
Запрос 4. Определить средний балл каждого студента.
Если студент сдавал не все экзамены то:
ПРИМЕЧАНИЕ: Для исключения попадания в одну группу однофамильцев, предложение GROUP BY Фамилия следует писать как GROUP BY Фамилия, П_Ключ_С
Занятие 8 Подзапросы Определение: Подзапрос- это запрос, вложенный в другой запрос. Подзапросы часто называют подчиненными запросами. Подчиненный запрос можно использовать вместо выражения в списке полей инструкции SELECT или в предложениях WHERE и HAVING. Использование подзапросов наиболее эффективно в реляционных базах данных, в которых описаны все таблицы и отношения подчиненности между ними.
Читайте также: GROUP BY – группировка данных Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|