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



Pdf көрінісі
бет154/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   150   151   152   153   154   155   156   157   ...   243
Байланысты:
Язык SQL. Базовый курс

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 или можно написать просто
...
FROM ( SELECT city FROM airports
...
Сначала попробуйте дать ответ теоретически, а потом проверьте вашу гипотезу
на компьютере.
158


23. Предположим, что департамент развития нашей авиакомпании задался вопро-
сом: каким будет общее число различных маршрутов, которые теоретически
можно проложить между всеми городами?
Если в каком-то городе имеется более одного аэропорта, то это учитывать не
будем, т. е. маршрутом будем считать путь между
городами
, а не между
аэро-
портами
. Здесь мы используем соединение таблицы с самой собой на основе
неравенства значений атрибутов.
SELECT count( * )
FROM ( SELECT DISTINCT city FROM airports ) AS a1
JOIN ( SELECT DISTINCT city FROM airports ) AS a2
ON a1.city <> a2.city;
count
-------
10100
(1 строка)
Задание.
Перепишите этот запрос с использованием общего табличного выра-
жения.
24. В тексте главы мы рассмотрели использование подзапросов в предикатах
EXISTS и IN. Существуют также предикаты многократного сравнения ANY и ALL.
Они представлены в документации в разделе 9.22 «Выражения подзапросов».
Самостоятельно ознакомьтесь с этими предикатами и напишите несколько за-
просов с их применением.
Предикаты ANY и ALL имеют некоторую связь с предикатом IN. В частности,
использование IN эквивалентно использованию конструкции = ANY, а исполь-
зование NOT IN эквивалентно использованию конструкции <> ALL.
Пример двух эквивалентных запросов, выбирающих аэропорты в часовых поя-
сах «Asia/Novokuznetsk» и «Asia/Krasnoyarsk»:


Достарыңызбен бөлісу:
1   ...   150   151   152   153   154   155   156   157   ...   243




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

    Басты бет