подзапросов в предложение SELECT .
SELECT a.model, ( SELECT count( * ) FROM seats s WHERE s.aircraft_code = a.aircraft_code AND s.fare_conditions = 'Business' ) AS business, ( SELECT count( * ) FROM seats s WHERE s.aircraft_code = a.aircraft_code AND s.fare_conditions = 'Comfort' ) AS comfort, ( SELECT count( * ) FROM seats s WHERE s.aircraft_code = a.aircraft_code AND s.fare_conditions = 'Economy' ) AS economy FROM aircrafts a ORDER BY 1; Обратите внимание, что в этом запросе мы использовали коррелированные подза-
просы. Все они ссылаются на столбец таблицы «Самолеты» (aircrafts), которая обраба-
тывается во внешнем запросе. Для каждой обрабатываемой строки таблицы aircrafts
подсчитывается число строк в таблице seats, в которых атрибут aircraft_code имеет
такое же значение, что и в строке таблицы aircrafts. Подзапросы отличаются друг от
друга только условием fare_conditions. Поскольку все эти подзапросы не зависят друг
от друга, то, хотя все они обращаются к таблице «Места» (seats), не требуется исполь-
зовать для нее различные псевдонимы в этих подзапросах.
model
| business | comfort | economy
---------------------+----------+---------+---------
Airbus A319-100
|
20 |
0 |
96
Airbus A320-200
|
20 |
0 |
120
Airbus A321-200
|
28 |
0 |
142
Boeing 737-300
|
12 |
0 |
118
Boeing 767-300
|
30 |
0 |
192
Boeing 777-300
|
30 |
48 |
324
Bombardier CRJ-200 |
0 |
0 |
50
Cessna 208 Caravan |
0 |
0 |
12
Sukhoi SuperJet-100 |
12 |
0 |
85
(9 строк)
А в этом варианте решения задачи используется