GROUP BY Факультет, Курс;
Ведомость
Фамилия | Факультет | Курс | Факультет | Курс | Количество | |
АНДРЕЕВ | ММ | MM | ||||
БАРАБАНОВ | ВМК | MM | ||||
БАКЛАНОВ | ММ | MM | ||||
БРАГИН | ЭФ | MM | ||||
БУБНОВ | ММ | MM | ||||
ВЕРБИЦКИЙ | ЭФ | BMK | ||||
ВОДОЛАЗСКИЙ | ВМК | BMK | ||||
ГЛОТОВ | ЭФ | BMK | ||||
ГОЛОВИН | ММ | BMK | ||||
………………….. | ….. | BMK | ||||
ГРИГОРОВИЧ | ВМК | ЭФ | ||||
ДАНЦКЕР | ЭФ | ЭФ |
Предложение HAVING
Определяет, какие сгруппированные записи отображаются при использовании инструкции SELECT с предложением GROUP BY. После того как записи будут сгруппированы с помощью предложения GROUP BY, предложение HAVING отберет те из полученных записей, которые удовлетворяют условиям отбора, указанным в предложении HAVING.
Синтаксис
SELECT списокПолей
FROM таблица
WHERE условиеОтбора
GROUP BY группируемыеПоля
HAVING условиеГруппировки
Ниже перечислены аргументы инструкции SELECT, содержащей предложение HAVING:
Элемент | Описание |
группируемыеПоля | Имена полей (до 10), которые используются для группировки записей. Порядок имен полей в аргументе группируемыеПоля определяет уровень группировки для каждого из этих полей. |
условиеГруппировки | Выражение, определяющее, какие сгруппированные записи следует отображать. |
Предложение HAVING является необязательным.
Предложение HAVING похоже на предложение WHERE, которое определяет, какие записи должны быть отобраны. После того как записи будут сгруппированы с помощью предложения GROUP BY, предложение HAVING указывает, какие из полученных записей должны быть отобраны:
SELECT КодТипа, Sum(НаСкладе)
FROM Товары
GROUP BY КодТипа
HAVING Sum(НаСкладе) > 100;
Предложение HAVING может содержать до 40 выражений, связанных логическими операторами, такими как And и Or.
Инструкция SELECT [предикат]
Предикат позволяют отобрать записи среди выбранных с помощью запроса на языке SQL.
Элемент | Описание |
предикат | Один из следующих предикатов отбора: ALL, DISTINCT, DISTINCTROW, TOP. Предикаты используются для ограничения числа возвращаемых записей. Если они отсутствуют, по умолчанию используется предикат ALL. |
Синтаксис
SELECT [ALL / DISTINCT / DISTINCTROW / [TOP n [PERCENT]]] имена полей {смотри выше }
FROM таблица
Элемент | Описание |
ALL | Если инструкция SQL не содержит ни одного предиката, то подразумевается предикат ALL. Отбираются все записи, соответствующие условиям, заданным в инструкции SQL. |
DISTINCT | Исключает записи, которые содержат повторяющиеся значения в выбранных полях. Чтобы запись была включена в результат выполнения запроса, значения в каждом поле, включенном в инструкцию SELECT, должны быть уникальными. Например, в таблице «Сотрудники» есть однофамильцы. Если две записи содержат значение «Иванов» в поле «Фамилия», то следующая инструкция SQL возвратит только одну из них: SELECT DISTINCT Фамилия FROM Сотрудники; Если опустить предикат DISTINCT, этот запрос возвратит обе записи для фамилии Иванов. Если предложение SELECT содержит более одного поля, то для включения записи в результат выполнения запроса необходимо, чтобы совокупность значений во всех этих полях была уникальной. Результат выполнения инструкции SQL, содержащей предикат DISTINCT, является необновляемым и не отражает последующие изменения, внесенные другими пользователями. |
DISTINCTROW | Опускает данные, основанные на целиком повторяющихся записях, а не отдельных повторяющихся полях. Например, создан запрос, объединяющий таблицы «Клиенты» и «Заказы» по полю «КодКлиента». Таблица «Клиенты» не имеет повторяющихся значений в поле «КодКлиента», а таблица «Заказы» содержит, поскольку каждый клиент может сделать несколько заказов. Следующая инструкция SQL показывает, как можно использовать предикат DISTINCTROW для получения списка клиентов, разместивших хотя бы один заказ, без включения сведений о самих заказах: SELECT DISTINCTROW Название FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента = Заказы.КодКлиента ORDER BY Название; Если опустить предикат DISTINCTROW, в результат выполнения запроса будет включено несколько строк о каждом клиенте, сделавшем несколько заказов. Предикат DISTINCTROW влияет на результат только в том случае, если в запрос включены не все поля из анализируемых таблиц. Предикат DISTINCTROW игнорируется, если запрос содержит только одну таблицу или все поля всех таблиц. |
TOP n [PERCENT] | Возвращает определенное число записей, находящихся в начале или в конце диапазона, описанного с помощью предложения ORDER BY. Следующая инструкция SQL позволяет получить список 25 лучших студентов выпуска 1994 года: SELECT TOP 25 Имя, Фамилия FROM Студенты WHERE [Год Выпуска] = 1994 ORDER BY [Средний Балл] DESC; Если предложение ORDER BY будет опущено, запрос возвратит произвольный набор 25 записей из таблицы «Студенты», удовлетворяющих предложению WHERE. Предикат TOP не осуществляет выбор между равными значениями. Если в предыдущем примере средние баллы двадцать пятого и двадцать шестого студента будут равны, то запрос возвратит 26 записей. Кроме того, можно использовать зарезервированное слово PERCENT для возврата определенного процента записей, находящихся в начале или в конце диапазона, описанного с помощью предложения ORDER BY. Предположим, что вместо 25 лучших студентов следует отобрать студентов, попавших в последние 10 процентов: SELECT TOP 10 PERCENTИмя, Фамилия FROM Студенты WHERE [Год Выпуска] = 1994 ORDER BY [Средний Балл] ASC; Предикат ASC обеспечивает возврат последних значений. Значение, следующее после предиката TOP должно быть числовым значением типа Integer без знака. Предикат TOP не влияет на возможность обновления запроса. |
Инструкция UPDATE
Создает запрос на обновление, который изменяет значения полей указанной таблицы на основе заданного условия отбора.
Синтаксис
UPDATE таблица
SET поле1 = новоеЗначение1, поле2 = новоеЗначение2,…
WHERE условиеОтбора;
Элемент | Описание |
таблица | Имя таблицы, данные в которой следует изменить. |
поле1 = новоеЗначение1 | Выражение, определяющее значение, которое должно быть вставлено в указанное поле обновленных записей. |
условиеОтбора | Выражение, отбирающее записи, которые должны быть изменены. При выполнении этой инструкции будут изменены только записи, удовлетворяющие указанному условию. |
Дата добавления: 2016-05-25; просмотров: 929;