Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML. Токмаков Г.П. - 92 стр.

UptoLike

Составители: 

92
столбец группировки, который по определению имеет одно и то же значе-
ние во всех строках группы;
выражение, включающее в себя перечисленные выше элементы.
Запросы с группировкой и с условиями отбора групп выполняются сле-
дующим образом.
1. Взять таблицу, указанную в предложении
FROM.
2. Если имеется предложение
WHERE, применить заданное в нем условие от-
бора к каждой строке таблицы. Если при этом получается значение
TRUE, то те-
кущая строка добавляется в результирующую таблицу, если получается значе-
ние
FALSE, то строка отбрасывается.
3. Если имеется предложение
GROUPBY, разделить строки таблицы таким
образом, чтобы строки в каждой группе имели одинаковые значения в столбцах
группировки (т. е. в столбцах, указанных за ключевым словом
GROUPBY).
4. Если имеется предложение
HAVING, применить заданное в нем условие к
каждой группе и оставить в результирующей таблице те группы, для которых
это условие выполняется.
5. Для каждой из оставшихся групп строк вычисляются значения агрегат-
ных функций, указанных в предложении
SELECT. При этом для каждой группы
формируется одна строка, содержащая значения столбцов группировки и значе-
ния агрегатных функций, указанных в предложении
SELECT.
4.4. ВЛОЖЕННЫЕ ЗАПРОСЫ
В
SQL существует механизм вложенного запроса, позволяющий использо-
вать результаты одного запроса в другом запросе. Этот механизм играет важ-
ную роль в
SQL по следующим причинам:
вложенные запросы соответствуют словесному описанию запроса и поэто-
му являются самым естественным способом выражения запроса;
вложенные запросы позволяют структурировать запрос путем разбиения на
части (на главный запрос и вложенные запросы);
существуют ситуации, когда невозможно обойтись без вложенных запро-
сов.
Вложенным называется запрос, содержащийся в предложении
WHERE или
HAVING другого запроса.
Рассмотрим следующую ситуацию.
Требуется вывести список офисов, для
которых плановый объем продаж
(поле TARGET) превышает сумму плановых
объемов продаж всех служащих
(поле QUOTA).
Первая часть этого запроса должна выглядеть как
SELECTCITY
FROMOFFISY
WHERETARGET>???
Во второй части заказа нужно ответить на вопрос: как определить сумму
плановых объемов продаж служащих для отдельного офиса (скажем офиса с
идентификатором
22).