ВУЗ:
Составители:
Рубрика:
– 99 –
4.4.3. П
ОДЧИНЕННЫЕ ЗАПРОСЫ В ПРЕДЛОЖЕНИИ HAVING
Вложенные запросы могут использоваться также в предложении HAVING, ко-
гда требуется отобрать группу строк. Рассмотрим следующий пример, содержа-
щий вложенный запрос в предложении
HAVING. Вывести список служащих, у ко-
торых средняя стоимость заказов на товары, изготовленные компанией
ВАЗ,
выше, чем общая средняя стоимость заказов.
SELECTFAMILY,NAME,AVG(PRICE_ALL)
FROMSLUZHASCHIES,ZAKAZYZ
WHERES.ID_SLZH=Z.ID_SLZHANDZ.ID_MFR=`ВАЗ`
GROUPBYFAMILY,S.ID_SLZH
HAVINGAVG(PRICE_ALL)>=(SELECTAVG(PRICE_ALL)
FROMZAKAZYZWHERES.ID_SLZH=Z.ID_SLZH))
FAMILY NAME AVG(PRICE_ALL)
Ганин Сергей
Петров Петр
Нилов Лев
Алгоритм выполнения запроса
1. Вложенный запрос вычисляет среднюю стоимость по всем заказам.
2. Этот простой вложенный запрос вычисляет среднюю стоимость один раз, а
затем многократно используется в предложении
HAVING.
3. Главный запрос просматривает строки таблицы
ZAKAZY, отыскивая все зака-
зы на товары компании
ВАЗ, и группирует их по именам служащих.
4. Предложение
HAVING сравнивает среднюю стоимость по каждой группе то-
варов со средней стоимостью по всем заказам, вычисленной ранее.
5. Если средняя стоимость по группе больше, чем общая средняя стоимость, то
данная группа строк сохраняется, если нет, то данная группа строк исключается.
6. Предложение
SELECT создает для каждой группы итоговую строку, содер-
жащую фамилию, имя и среднюю стоимость принятых ими заказов.
Описанный алгоритм выполнения запроса приведен на Рис. 4.2. .
4.4.4. П
РАВИЛА ВЫПОЛНЕНИЯ ВЛОЖЕННЫХ ЗАПРОСОВ
А теперь подведем итоги изучения вложенных запросов и сформулируем
правила, позволяющие использовать результаты одного запроса для получения
результатов другого.
Страницы
- « первая
- ‹ предыдущая
- …
- 97
- 98
- 99
- 100
- 101
- …
- следующая ›
- последняя »
