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



Pdf көрінісі
бет161/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   157   158   159   160   161   162   163   164   ...   256
sql osnovi yazika

WITH tickets_seats
AS (
SELECT f.flight_id,
f.flight_no,
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
WHERE f.status = 'Arrived'
GROUP BY 1, 2, 3, 4, 5
)
SELECT ts.departure_city,
ts.arrival_city,
sum( ts.fact_passengers ) AS sum_pass,
sum( ts.total_seats ) AS sum_seats,
round( sum( ts.fact_passengers )::numeric /
sum( ts.total_seats )::numeric, 2 ) AS frac
FROM tickets_seats ts
GROUP BY ts.departure_city, ts.arrival_city
ORDER BY ts.departure_city;
departure_city | arrival_city
| sum_pass | sum_seats | frac
----------------+-----------------+----------+-----------+------
Абакан
| Tomsk
|
258 |
360 | 0.72
Абакан
| Novosibirsk
|
217 |
348 | 0.62
Абакан
| Moscow
|
466 |
1044 | 0.45
...
Якутск
| Санкт-Петербург |
352 |
3596 | 0.10
(361 строка)
Для того чтобы лучше уяснить, как работает запрос в целом, вычлените из него
отдельные подзапросы и выполните их, посмотрите, что они выводят.
206


Контрольные вопросы и задания
Как вы считаете, равносильно ли в данном запросе
SELECT count( s.seat_no )
и
SELECT count( s.* )
Почему?
Задание.
Модифицируйте этот запрос, чтобы он выводил те же отчетные дан-
ные, но с учетом классов обслуживания, т. е. Business, Comfort и Economy.
26.* Предположим, что некая контролирующая организация потребовала информа-
цию о размещении пассажиров одного из рейсов Кемерово — Москва в салоне
самолета. Для определенности выберем конкретный рейс из тех рейсов, кото-
рые уже прибыли на момент времени, соответствующий текущему моменту.
Текущий момент времени в базе данных «Авиаперевозки» определяется с по-
мощью функции bookings.now.
Выполним запрос:


Достарыңызбен бөлісу:
1   ...   157   158   159   160   161   162   163   164   ...   256




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

    Басты бет