Как вы думаете, почему функция count получает в качестве параметра выраже-
ние «b.*», а не просто «*»? Что изменится, если оставить только «*», и почему?
21. В тексте главы был приведен запрос, выводящий список городов, в которые нет
рейсов из Москвы.
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 — и обоснуйте ваше решение.
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( * )
Достарыңызбен бөлісу: