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



Pdf көрінісі
бет141/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   137   138   139   140   141   142   143   144   ...   256
sql osnovi yazika

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;
180


6.4. Подзапросы
Обратите внимание, что в этом запросе мы использовали коррелированные под-
запросы. Все они ссылаются на столбец таблицы «Самолеты» (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 строк)
А в этом варианте решения задачи используется подзапрос в предложении FROM.


Достарыңызбен бөлісу:
1   ...   137   138   139   140   141   142   143   144   ...   256




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

    Басты бет