Учебно-практическое пособие москва 2017 ббк


SELECT aa.city, aa.airport_code, aa.airport_name



Pdf көрінісі
бет138/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   134   135   136   137   138   139   140   141   ...   243
Байланысты:
Язык SQL. Базовый курс

SELECT aa.city, aa.airport_code, aa.airport_name
FROM (
140


SELECT city, count( * )
FROM airports
GROUP BY city
HAVING count( * ) > 1
) AS a
JOIN airports AS aa ON a.city = aa.city
ORDER BY aa.city, aa.airport_name;
Благодаря использованию предложения HAVING, подзапрос выбирает города, в ко-
торых более одного аэропорта, и формирует временную таблицу в таком виде:
city
| count
-----------+-------
Ульяновск |
2
Москва
|
3
(2 строки)
А в главном запросе выполняется соединение временной таблицы с таблицей «Аэро-
порты» (airports).
city
| airport_code |
airport_name
-----------+--------------+---------------------
Москва
| VKO
| Внуково
Москва
| DME
| Домодедово
Москва
| SVO
| Шереметьево
Ульяновск | ULV
| Баратаевка
Ульяновск | ULY
| Ульяновск-Восточный
(5 строк)
Для иллюстрации использования
подзапросов в предложении HAVING
решим та-
кую задачу: определить число маршрутов, исходящих из тех аэропортов, которые
расположены восточнее географической долготы 150

.
SELECT departure_airport, departure_city, count( * )
FROM routes
GROUP BY departure_airport, departure_city
HAVING departure_airport IN (
SELECT airport_code
FROM airports
WHERE longitude > 150
)
ORDER BY count DESC;
Подзапрос формирует список аэропортов, которые и будут отобраны с помощью
предложения HAVING после выполнения группировки.
departure_airport |
departure_city
| count
-------------------+--------------------------+-------
DYR
| Анадырь
|
4
GDX
| Магадан
|
3
PKC
| Петропавловск-Камчатский |
1
(3 строки)
141


В сложных запросах могут использоваться


Достарыңызбен бөлісу:
1   ...   134   135   136   137   138   139   140   141   ...   243




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет