Учебное пособие Санкт-Петербург «бхв-петербург»



Pdf көрінісі
бет159/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   155   156   157   158   159   160   161   162   ...   256
sql osnovi yazika

SELECT DISTINCT a.city
FROM airports a
WHERE NOT EXISTS (
SELECT * FROM routes r
WHERE r.departure_city = 'Москва'
AND r.arrival_city = a.city
)
AND a.city <> 'Москва'
ORDER BY city;
Можно предложить другой вариант, в котором используется одна из операций
над множествами строк: объединение, пересечение или разность.
Вместо знака «?» поставьте в приведенном ниже запросе нужное ключевое сло-
во — UNION, INTERSECT или EXCEPT — и обоснуйте ваше решение.
203


Глава 6. Запросы
SELECT city
FROM airports
WHERE city <> 'Москва'
?
SELECT arrival_city
FROM routes
WHERE departure_city = 'Москва'
ORDER BY city;
22. В тексте главы мы рассматривали такой запрос: получить перечень аэропортов
в тех городах, в которых больше одного аэропорта.
SELECT aa.city, aa.airport_code, aa.airport_name
FROM (
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;
Как вы думаете, обязательно ли наличие функции count в подзапросе в пред-
ложении SELECT или можно написать просто
SELECT city FROM airports
Сначала попробуйте дать ответ теоретически, а потом проверьте вашу гипотезу
на компьютере.
23. Предположим, что департамент развития нашей авиакомпании задался вопро-
сом: каким будет общее число различных маршрутов, которые теоретически
можно проложить между всеми городами?
Если в каком-то городе имеется более одного аэропорта, то это учитывать не
будем, т. е. маршрутом будем считать путь между городами, а не между аэро-
портами
. Здесь мы используем соединение таблицы с самой собой на основе
неравенства значений атрибутов.


Достарыңызбен бөлісу:
1   ...   155   156   157   158   159   160   161   162   ...   256




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

    Басты бет