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



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

FROM flights_v
WHERE f.status = 'Arrived'
) AS ts JOIN aircrafts AS a
Внешний запрос вместо кода самолета выводит наименование модели, выбирает
остальные столбцы из подзапроса без изменений и дополнительно производит вы-
числение степени заполнения самолета пассажирами, а также сортирует результиру-
ющие строки.
-[ RECORD 1 ]--------------+-------------------------
flight_id
| 28205
flight_no
| PG0032
scheduled_departure_local | 2016-09-13 08:00:00
departure_city
| Пенза
arrival_city
| Москва
model
| Cessna 208 Caravan
fact_passengers
| 2
total_seats
| 12
fraction
| 0.17
-[ RECORD 2 ]--------------+-------------------------
flight_id
| 9467
flight_no
| PG0360
scheduled_departure_local | 2016-09-13 08:00:00
departure_city
| Санкт-Петербург
arrival_city
| Оренбург
model
| Bombardier CRJ-200
fact_passengers
| 6
total_seats
| 50
fraction
| 0.12
...
185


Глава 6. Запросы
Рассмотренный сложный запрос можно сделать более наглядным за счет выделения
подзапроса в отдельную конструкцию, которая называется общее табличное выра-
жение (Common Table Expression — CTE)
.
WITH ts AS
( SELECT f.flight_id,
f.flight_no,
f.scheduled_departure_local,
f.departure_city,
f.arrival_city,
f.aircraft_code,
count( tf.ticket_no ) AS fact_passengers,
( SELECT count( s.seat_no )
FROM seats s
WHERE s.aircraft_code = f.aircraft_code
) AS total_seats
FROM flights_v f
JOIN ticket_flights tf ON f.flight_id = tf.flight_id


Достарыңызбен бөлісу:
1   ...   141   142   143   144   145   146   147   148   ...   256




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

    Басты бет