Учебно-практическое пособие москва 2017 ббк



Pdf көрінісі
бет155/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   151   152   153   154   155   156   157   158   ...   243
Байланысты:
Язык SQL. Базовый курс

SELECT * FROM airports
WHERE timezone IN
( 'Asia/Novokuznetsk', 'Asia/Krasnoyarsk' );
SELECT * FROM airports
WHERE timezone = ANY (
VALUES ( 'Asia/Novokuznetsk' ),
( 'Asia/Krasnoyarsk' )
);
Еще один пример. В тексте главы мы рассматривали запрос, подсчитывающий
количество маршрутов, проложенных из самых восточных аэропортов.
SELECT departure_city, count( * )
FROM routes
GROUP BY departure_city
HAVING departure_city IN (
SELECT city
FROM airports
WHERE longitude > 150
159


)
ORDER BY count DESC;
В этом запросе можно заменить IN на ANY таким образом:
...
HAVING departure_city = ANY ( SELECT city
...
25.* При планировании новых маршрутов и оценке экономической эффективности
уже существующих может потребоваться информация о том, какова усреднен-
ная степень заполнения самолетов на всех направлениях.
Будем учитывать только уже прибывшие рейсы.
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_fact_passengers,
sum( ts.total_seats ) AS sum_total_seats,
round( sum( ts.fact_passengers )::numeric /
sum( ts.total_seats )::numeric, 2 ) AS fraction


Достарыңызбен бөлісу:
1   ...   151   152   153   154   155   156   157   158   ...   243




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

    Басты бет